2015-10-23 12 views
6

Ich teste gerade eine App aus, die unter anderem ein paar .png Bilder lädt, wenn sie geöffnet wird. Die Bilder werden korrekt auf meinem Mac (10.7.5) und meiner Mutter (10.8.5) angezeigt; Aber wenn meine Schwester sie öffnet (10.9.5), werden die Bilder nicht geladen. Alle anderen Funktionen sind ansonsten intakt. Ich sollte beachten, dass ich auf meinem Mac und meiner Mutter Python 3.4 und viele der Pakete installiert habe, die die App verwendet, einschließlich des PIL-Pakets, während meine Schwester nichts davon hat. Die App wurde gebaut mit dem Befehl:PIL ImageTK lädt kein Bild in py2app Anwendungspaket

python3.4 setup.py py2app 

Bilder im Code importiert werden mit:

image = ImageTk.PhotoImage(file = "images/pic.png") 

Setup-Datei für py2app sich wie folgt:

from setuptools import setup 

APP = ['myapp.py'] 
DATA_FILES = [('', ['images'])] 

OPTIONS = {'iconfile': 'myapp.icns', 'packages': ['PIL']} 

setup(
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'], 
) 

Meine Vermutung ist, dass es ein Problem mit PIL, es scheint einfach nicht gut mit py2app spielen zu wollen. Der Grund, warum ich es für PIL halte, ist, dass nach dem Ausführen des Befehls zum Erstellen meiner App die folgende Fehlermeldung in Terminal angezeigt wird.

Modules not found (conditional imports): 
* Image (/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/py2app/recipes/PIL/prescript.py) 

Ich wäre sehr dankbar für Anregungen oder Anweisungen.

+0

Ich bekomme den gleichen Fehler und ich werde hier posten, wenn ich etwas finde –

Antwort

0

Wenn Sie ein Python-Paket erstellen, das die Installation anderer Pakete erfordert, können Sie das Schlüsselwort in Setup see docs verwenden. Dies hat den zusätzlichen Vorteil, das/die Paket (e) zu installieren, wenn der Benutzer pip install py2app ausführt. In Ihrem Fall würde ich install_requires = ['pillow'] verwenden und pip wird während des Installationsvorgangs automatisch das Kissen packen.