Domanda

Sto cercando di usare cx_freeze da un po 'di tempo ormai, eppure si verifica sempre lo stesso errore

    import cx_Freeze.util
ImportError: DLL load failed: %1 is not a valid win32 application

Ho provato con 32 e 64 bit e ho provato sia setup.py che cxfreeze.bat

Quello che sto chiedendo è, come faccio a farlo funzionare?

È stato utile?

Soluzione

Ho avuto lo stesso problema e questa era la mia soluzione.

Sto usando Python 3.2 per Windows 64 bit e le mie installazioni di libreria erano tutte per 64 bit, incluso CX_Freeze. Quando ho provato a "congelare" un programma che ha importato il pacchetto PYQT4, ho ricevuto l'errore:

ImportError: DLL load failed: %1 is not a valid win32 application

Nel mio caso, il problema era che lo script CXFreeze stava copiando due file DLL (qtcore4.dll e qtgui4.dll) dalla mia installazione MATLAB, piuttosto che dalla mia installazione di Python. Le DLL MATLAB erano a 32 bit mentre le DLL Python erano i file a 64 bit richiesti.

Leggi i messaggi visualizzati quando si esegue lo script CXFreeze per creare i file EXE. Gli ultimi messaggi dovrebbero essere "copia ... dll-> .... dll". Controlla i nomi di file e assicurati che tutti i file vengano effettivamente copiati dall'installazione di Python e non da qualche altro programma.

Se vengono copiati da altrove (come nel mio caso) puoi semplicemente copiarli su di te dopo la build. Altrimenti, dovrai cambiare il tuo percorso per non includere la cartella contenente le DLL da 32 bit da qualunque programma appartengano.

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