Ich habe eine Tkinter-App in Python geschrieben, und ich möchte "native" (einfach zu laufen) Mac und Windows ausführbare Dateien davon machen. Ich habe erfolgreich eine Windows .exe mit py2exe erstellt, aber der äquivalente Prozess mit py2app funktioniert nicht.Hilfe beim Erstellen einer Mac-Anwendung von Python mit Py2App?
Hier ist meine 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"],
)
ich nur cd
meiner app und führen Sie python setup.py py2app
. Die .app erscheint ohne Fehler, aber es stürzt beim Start mit "myapp hat einen schwerwiegenden Fehler festgestellt und wird jetzt beendet."
Ich betreibe Snow Leopard, und ich habe dies mit dem Standard Apple Python 2.6 und Python25 von MacPorts ausprobiert. Ich habe irgendwo gelesen, dass es besser ist, ein anderes Python zu verwenden, da py2app die Systemversion in Ihrer App nicht bündelt.
EDIT: Hier ist, was die Mac-Konsole dazu zu sagen hat:
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
FYI: win64 existiert nicht. Siehe http://docs.python.org/release/3.0.1/library/sys.html#sys.platform. Gibt es auch irgendwo in py2app ein Anwendungslog/Debug-Flag? Das wäre sehr hilfreich beim Debuggen des Problems. Ich vermute, es ist irgendwo ein Importfehler. – sdolan
Ich habe die Frage mit der Konsolenausgabe aktualisiert. py2app selbst geht mit [pdb] (http://docs.python.org/library/pdb.html) in den Debugging-Modus, wenn es nötig ist, aber es wurde korrekt beendet. Ich frage mich, ob ich pdb auch zur laufenden App hinzufügen kann? – Jeff