Domanda

Ho scritto un programma GUI abbastanza semplice per automatizzare alcuni processi per gli utenti Windows in Python (come è l'unico linguaggio di programmazione che sono in qualche modo familiare con questo funzionerà su Windows). Idealmente non vorrei che l'utente debba eseguire un programma di installazione sulla propria macchina, poiché il mio piano è per eseguire autonomamente in un'unità USB.

Dipende dal sistema operativo, della navetta, della stringa, del sys, del tkinter, del webbrowser, del PIL, FTPLIB e GLOB.

Sembra che tutte le dipendenze siano state importate quando ho corso cx_freeze su di esso, tranne che per il PIL. Non ho mai usato cx_freeze prima, quindi potrei fare qualcosa di sbagliato ma non sembra così. Esecuzione del programma dallo Script Sforringzen .py funziona bene.

Ecco il messaggio di errore che ricevo quando si tenta di utilizzare un comando PIL:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python32\lib\tkinter\__init__.py", line 1399, in __call__
    return self.func(*args)
  File "E:\AlbumUploader.py", line 143, in OnButton2Click
    img.thumbnail(size, Image.ANTIALIAS)
  File "C:\Python32\lib\site-packages\PIL\Image.py", line 1573, in thumbnail
    self.load()
  File "C:\Python32\lib\site-packages\PIL\ImageFile.py", line 168, in load
    self.load_prepare()
  File "C:\Python32\lib\site-packages\PIL\ImageFile.py", line 234, in load_prepare
    self.im = Image.core.new(self.mode, self.size)
  File "C:\Python32\lib\site-packages\PIL\Image.py", line 39, in __getattr__
    raise ImportError("The _imaging C module is not installed")
ImportError: The _imaging C module is not installed
.

Grazie per qualsiasi aiuto che puoi fornire. Vedo che è ancora referendando C: \ Python32 che potrebbe essere parte del problema, perché non dovrebbe essere (se non sbaglio).

Aggiornamento:

Ho guardato le FAQ PIL e sembra che il GIST di quella risposta sia che ho bisogno di assicurarmi che il mio elenco sys.path sia corretto. Fondamentalmente ho afferrato tutti i file Python per Windows e ne ho inclusi nell'unità USB che sto cercando di usare per contenere tutto, e impostare il mio percorso come SO:

program_dir = os.path.split(sys.argv[0])[0]
sys.path = [program_dir]
sys.path.append(program_dir + os.sep + 'Lib')
sys.path.append(program_dir + os.sep + 'Lib' + os.sep + 'site-packages')
sys.path.append(program_dir + os.sep + 'Lib' + os.sep + 'site-packages' + os.sep + 'PIL')
sys.path.append(program_dir + os.sep + 'DLLs')
.

Tutti i percorsi sembrano corretti, ma per qualche motivo sto ancora ottenendo lo stesso errore. Quando eseguo il file .py, tutto funziona al 100%, ma questo sembra romperlo in qualche modo. Altri moduli sembrano funzionare solo bene come Shute, OS e SYS, per esempio.

È stato utile?

Soluzione

Penso che il tuo problema principale potrebbe essere che la Biblioteca Imaging Python (PIL) non supporti ancora Python 3.x.

Se guardi il Download PIL lo vedraiCi sono download di Windows per Python 2.4, 2.5, 2.6 e 2.7 ma niente per Python 3.x.

Questa domanda ha una risposta che descrive i porti non ufficiali di PIL per Python 3.x che potrebbe valere una prova.

Se ciò funziona, puoi dare un'occhiata a la prima domanda sulla FAQ PIL Che si tratta del "Modulo _imaging C non è installato" e elenca varie cose che puoi fare per identificare il problema.

Altri suggerimenti

In passato ho trovato cx_freeze per avere problemi che tirano le DLL corrette sotto Windows.

Ho usato Explorer di processo per rintracciare quali DLL sono state cercate,Ma non trovato, e poi li ha aggiunti manualmente al progetto, e questo ha capito.Come farebbe lo stesso per qualsiasi file, immagino lo stesso potrebbe essere fatto nel tuo caso.

Questo è stato per il mio utilizzo con PYSFML, quindi il tuo chilometraggio può variare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top