takluyver / pynsist

Build Windows installers for Python applications
https://pynsist.readthedocs.io/
Other
896 stars 119 forks source link

Wrong bitness with Windows 8.1 #50

Closed cachitas closed 9 years ago

cachitas commented 9 years ago

In the docs, it says that the bitness of the Python that is installed defaults to the version being used by the OS.

I used a installer.cfg as follows:

[Application]
name=Unzip Alignment Results
version=0.2
entry_point=uar:main

But after installing the application on a Windows 8.1 (64 bit) machine I noticed that Pynsist installed a 32 bit Python version.

Forcing bitness=64 solved it. So, maybe the docs are not updated or this is not working as intended.

takluyver commented 9 years ago

It should default to the bitness of Python you're using, but you might be running 32 bit Python - you can run 32 bit Python on 64 bit Windows.

The check it's doing is here: https://github.com/takluyver/pynsist/blob/1.5/nsist/__init__.py#L38

cachitas commented 9 years ago

Oh maybe I got this one wrong. So it downloads a Python version with the bitness of the machine where it was built, and not where it is being installed. I thought that it would recognize the bitness of the target system ( Windows 8.1 64 bit in this case) and download the appropriate Python install file.

Just to be clear, I'm building on Ubuntu and distributing to this Windows version. If this is the case, what I got makes sense and I misunderstood the docs.

takluyver commented 9 years ago

Ah, yes. If you're building on a Windows box, it should match the bitness of the Python you're using (which may be different from the bitness of the system). If you build on another platform, it defaults to 32 bit for now. That may change in the future, though, so it's best to be explicit. Possibly this should be clearer in the docs.

All the decisions about which bitness of Python to use are done at build time, so it knows nothing about the target system when it picks that.

cachitas commented 9 years ago

Got it, thanks for the clarification!