Python Forum

Full Version: Have you used pynsist?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Anyone who has used pynsist?
As a more broad question - do you consider distributing an app to a client (on Windows) not as EXE, but as python file a problem?
Would be glad to hear your thoughts :-)
I use it sometimes. If you have a regular user, who has no clue what he is doing, an simple exe-file is better.

I like pyinstaller more than pynsist. Pynsist has an different approach. It uses the installer. Pyinstaller is able to prepare a single exe-file where no installation is needed.
By the way, currently the project leader of pyinstaller is seeking for more developers and for another maintainer. Hopefully the community helps.


If you want an installer, use Pynsist. If you want a single exe-file without an installer, use Pyinstaller. I know, the names are not a good choice.
So far I use py2exe when I need to convert/freeze code to exe for windows. And in the rear occasion when if I needed an installer for windows I was using Install creator with Inno setup.
But this time I'm thinking to distribute the py file (instead of frozen exe)and was thinking to bundle the python with it (i.e. no need to ask client to download/install python and packages) and found pyinsist. Its not a problem they want downloading NSIS
I have tested pynsist.
(Aug-11-2017, 07:34 AM)buran Wrote: [ -> ]Its not a problem they want downloading NSIS
There is no need to download of NSIS for end user,only needed bye you for build process.
pynsist will make a single exe like my_game.exe ,this is a installer file that can be disrupted.
So running my_game.exe  start the installer(NSIS) next --> next --> Finish.
It will make a my_game shortcut in the start menu of Windows.

As mention bye @DeaD_EyE Pyinstaller can make one exe like my_game.exe .
Then my_game.exe  is a executable file,unlike my_game.exe  from pynsist which is a installer file.

If want disrupted a more processional app,
a installer(that has uninstall option) can be more approachable than ask some to run a "exe" that is executable.
(Aug-11-2017, 07:34 AM)buran Wrote: [ -> ]And in the rear occasion when if I needed an installer for windows I was using Install creator with Inno setup.
I have used Inno setup in the past,it's a good installer.
(Aug-11-2017, 10:06 AM)snippsat Wrote: [ -> ]There is no need to download of NSIS for end user,only needed bye you for build process.
Yes, I understand that. Maybe I was unclear.
Anyway, thanks. My idea is to provided python interpreter in bundled form thus not requiring user to download and install it. But it has some limitations, so I'm not decided yet. If I stick to exe, probably will use py2exe again and then package it for installation with inno
(Aug-11-2017, 11:04 AM)buran Wrote: [ -> ]My idea is to provided python interpreter in bundled form thus not requiring user to download and install it
I see,not tried that option with pynsist.

Anaconda is doing a lot of cool stuff and can provided python interpreter in bundled form.
There installer conda(same as pip) can create shared python environment.
So just copy that folder to an other computer and it work. 
Don't have to download full Anaconda,can download Miniconda(wich has conda installer).

So a demo.
I want a python version with Beautifulsoup,Requests and lxml that can be shared environment.
I make a environment.yml file.
name: web_title
dependencies:
- beautifulsoup4
- requests
- lxml
Making the environment.
G:\mini_conda36\Scripts
λ conda env create -f environment.yml
Fetching package metadata ...........
Solving package specifications: .
vs2015_runtime 100% |###############################| Time: 0:00:00 2.34 MB/s
python-3.6.2-0 100% |###############################| Time: 0:00:11 2.90 MB/s
beautifulsoup4 100% |###############################| Time: 0:00:00 2.87 MB/s
lxml-3.8.0-py3 100% |###############################| Time: 0:00:00 2.93 MB/s
requests-2.14. 100% |###############################| Time: 0:00:00 2.97 MB/s
#
# To activate this environment, use:
# > activate web_title 
So no can i copy web_title folder to an other computer.
Don't have to active environment just using that Python version and it work.
λ python
Python 3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 12:30:02) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>>
There new Conda-Forge is also cool.
Thanks, snippsat. I will look into this.
I am interested in can I build a Windows installer within a Linux system?
NSIS can run on non-windows platforms to generate windows-installers, yes.  http://nsis.sourceforge.net/Features
(Aug-11-2017, 03:56 PM)wavic Wrote: [ -> ]I am interested in can I build a Windows installer within a Linux system?
No the cross platform installer like Pyinstaller and CxFreeze.
You build for the platform it shall be used on.
Quote:PyInstaller is tested against Windows, Mac OS X, and Linux. However, it is not a cross-compiler:
to make a Windows app you run PyInstaller in Windows; to make a Linux app you run it in Linux, etc.

Quote:cx_Freeze works on Windows, Mac and Linux, but on each platform it only makes an executable that runs on that platform.
Can mess with something like Wine,but this is not advisable.
If i had only a Linux system and wanted to make "exe" for Windows.
i would fire up VirtualBox with a Windows version and to build there.