2015-10-23 29 views
6

Sto testando un'app che ho realizzato e che, tra le altre cose, carica un paio di immagini .png all'apertura. Le immagini vengono visualizzate correttamente sul mio Mac (10.7.5) e su quello di mia madre (10.8.5); tuttavia, quando mia sorella lo apre sulla sua (10.9.5) le immagini non vengono caricate. Tutte le altre funzionalità sono altrimenti intatte. Dovrei notare che sul mio Mac e su quello di mia madre, ho installato Python 3.4 e molti dei pacchetti che l'app usa, incluso il pacchetto PIL, mentre mia sorella non ne ha. L'applicazione è stato costruito utilizzando il comando:PIL ImageTK non sta caricando l'immagine nel pacchetto di applicazioni py2app

python3.4 setup.py py2app 

immagini vengono importati nel codice con: file di installazione

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

per py2app è la seguente:

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'], 
) 

La mia ipotesi è che si tratta di un problema con PIL, semplicemente non sembra voler giocare bene con py2app. Il motivo per cui penso che sia PIL è perché dopo aver eseguito il comando per costruire la mia app ottengo il seguente messaggio di errore nel terminale.

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

Sarei molto grato per qualsiasi suggerimento o direzione.

+0

Sto ricevendo lo stesso errore e posterò qui se trovo qualcosa –

risposta

0

Se si sta creando un pacchetto python che richiede l'installazione di altri pacchetti, è possibile utilizzare la parola chiave install_requires all'interno dell'impostazione see docs. Questo ha l'ulteriore vantaggio di installare i pacchetti quando l'utente esegue py2app di installazione dei pip. Nel tuo caso utilizzerei install_requires = ['pillow'] e pip catturerà automaicamente il cuscino durante il processo di installazione.