2010-11-27 2 views
2

J'ai une application Tkinter écrite en python, et je veux en faire des exécutables mac et windows "natifs" (faciles à exécuter). J'ai réussi à construire un fichier .exe avec py2exe, mais le processus équivalent avec py2app ne fonctionne pas.Aider à construire une application mac à partir de python en utilisant py2app?

Voici mon setup.py:

from setuptools import setup 
import sys
MAIN_SCRIPT = "myapp.py" WINDOWS_ICON = "myicon.ico" MAC_ICON = "myicon.icns"
if sys.platform in ("win32", "win64"): # does win64 exist? import py2exe setup(windows=[{ "script":MAIN_SCRIPT, "icon_resources":[(0x0004, WINDOWS_ICON)] }], ) elif sys.platform == "darwin": import py2app setup(app=[MAIN_SCRIPT], # doesn't include the icon yet setup_requires=["py2app"], )

Je viens cd à mon répertoire d'applications et exécuter python setup.py py2app. Le .app apparaît sans erreur, mais il se bloque au lancement avec "myapp a rencontré une erreur fatale, et va maintenant se terminer." Je cours Snow Leopard, et j'ai essayé ceci avec le Apple Python 2.6 standard et le python25 de MacPorts. J'ai lu quelque part qu'il est préférable d'utiliser un autre Python car py2app ne regroupera pas la version du système dans votre application.

EDIT: Voici ce que la console mac a à dire à ce sujet:

11/27/10 1:54:44 PM [0x0-0x80080].org.pythonmac.unspecified.myapp[77495] dlsym(0x10b120, Py_SetProgramName): symbol not found 
11/27/10 1:54:46 PM [0x0-0x80080].org.pythonmac.unspecified.myapp[77495] 0x99274242 
11/27/10 1:54:46 PM com.apple.launchd.peruser.501[185] ([0x0-0x80080].org.pythonmac.unspecified.myapp[77495]) Exited with exit code: 255 

+0

FYI: win64 n'existe pas. Voir http://docs.python.org/release/3.0.1/library/sys.html#sys.platform. De plus, n'y a-t-il pas un drapeau de log/debug d'application quelque part dans py2app? Ce serait très utile pour déboguer le problème. Je soupçonne que c'est une erreur d'importation quelque part. – sdolan

+0

J'ai mis à jour la question avec la sortie de la console. py2app lui-même passe en mode débogage avec [pdb] (http://docs.python.org/library/pdb.html) s'il le faut, mais il se termine correctement. Je me demande si je peux ajouter pdb à l'application en cours d'exécution? – Jeff

Répondre

0

Transforme que c'était un problème avec l'aide de Snow Leopard. Je l'ai essayé sur une machine Leopard à l'école et ça marche bien.

Questions connexes