PyInstaller 1.5rc1 fails to build executables on Snow Leopard. It always wants to use the 64-bit bootloader (which doesn't exist) even when I configure/build with a 32-bit python.

Python on Snow Leopard is an i386/x64 universal binary, which runs as a 64-bit executable by default. You can choose 32-bit by setting the environment variable VERSIONER_PYTHON_PREFER_32_BIT=yes. However, platform.architecture(), which PyInstaller uses to choose a bootloader, doesn't work correctly -- it apparently gets confused by the universal binary an always returns ('64bit', '').

After poking around a bit it seems that the most reliable way to detect the architecture is by checking sys.maxint. I was able to fix the problem by replacing "platform.architecture()[0]" with this function:

def architecture():
  if sys.maxint > 3**32:
    return '64bit'
  else:
    return '32bit'

I can submit a patch if that would be helpful.

The good news is that once I fix this problem, it works perfectly -- I don't need any of the patches or workarounds that I had with previous versions.

- Nathan

--
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyinstaller?hl=en.

Reply via email to