Cómo forzar a py2app a ejecutar la aplicación en modo de 32 bits

Estoy intentando crear un paquete de aplicaciones con py2app en Mac OS X 10.6. La aplicación utiliza algunas bibliotecas que solo se comstackn para 32 bits, de modo que cuando se ejecuta la aplicación hay un ImportError “no hay una architecture de 64 bits apropiada”. ¿Cómo puedo decirle a py2app que obligue a la aplicación a ejecutarse en modo de 32 bits?

Una forma es usar un Python de solo 32 bits, como las versiones de solo 32 bits que se pueden descargar desde python.org, con py2app. Otra es establecer la LSArchitecturePriority en i386 y posiblemente ppc en el Info.plist del paquete de aplicación generado. Vea aquí para más información.

Si desea ejecutar solo en modo de 32 bits, entonces no necesita la architecture de 64 bits. Por lo tanto, puede eliminar todas las architectures que no sean i386 de su paquete de aplicaciones resultante con la utilidad ditto .

Ejemplo:

 ditto --rsrc --arch i386 YourApplication.app YourApplicationStripped.app 

Su paquete de aplicaciones será más pequeño y se ejecutará como una aplicación de 32 bits, incluso en sistemas Intel de 64 bits.

Manual: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/ditto.1.html

O simplemente correr en una terminal: man ditto

Después de mucho dolor y tratando de hacer funcionar wx logré que funcionara usando este método, también incluí las versiones que instalé
Este fue el único que trabajó para mí, espero que ayude a otros ..

 py2applet --arch=i386 -i (includes here) --make-setup (pythonfiles, icon) 

El mio se parece un poco a esto

 py2applet --arch=i386 -i wx, platform --make-setup print.py print.icns convert.py 

Instalé python2.7 con
wxPython2.8-osx-unicode-py2.7
setuptools-0.6c11-py2.7.egg
y entonces

 sudo easy_install-2.7 py2app 

Esta instalada la versión 0.6.4 de py2applet.

Bien, ya que trabajo en una oficina de Vebjorn, posiblemente este sea el mejor lugar para publicar una respuesta, así que la encontraremos nuevamente. Dado un diccionario de opciones py2app:

 options = {} ... options['plist'] = { "LSArchitecturePriority": [ "i386" ] } ... setup(options={'py2app':options}) 

Esto crea una matriz de un valor de cadena para la clave LSArchitecturePriority.

Necesitas forzar a Python para que se ejecute en modo de 32 bits.