Domanda

Ho uno script di installazione standard per py2exe con cui raggrupparli in fasci applicazioni PyQt-based in file di Windows exe.

Oggi ho provato un semplice script che utilizza il modulo PyQwt, e non sembra funzionare. py2exe corre bene, ma quando eseguo il .exe crea, fa uscire il seguente in un file di log e non viene eseguito:

Traceback (most recent call last):
  File "qwt_test.pyw", line 5, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "PyQt4\Qwt5\__init__.pyo", line 32, in <module>
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading PyQt4\Qwt5\Qwt.pyd

Quando mi guardo PyQt4\Qwt5\ nella directory build\bdist.win32\winexe\collect-2.5, Qwt.pyd è sicuramente lì.

Non riesco a trovare qualcosa di utile in linea per quanto riguarda questo errore. Che cosa potrebbe causare? Grazie.

È stato utile?

Soluzione

py2exe non è l'unico modo, e forse non il modo migliore, per mettere insieme i file exe per le applicazioni Python - in particolare, difficilmente se non del tutto supporta PyQt. Per favore, ti supplico, controllare PyInstaller , che fa sapere di PyQt (e Linux, e Mac, dovrebbe vi preoccupate ...) - solo assicurarsi di utilizzare la cassa testa SVN, non la versione "rilasciato", che in questo momento è seriamente fuori di data (un problema che sta andando via si spera presto ...)

Altri suggerimenti

Alcune opzioni:

  1. Prova a giocare con il bundle_files options py2xe (3, 2, 1) (soprattutto se li metti tutti in un unico grande libreria zip, alcune DLL non piace).
  2. Assicurarsi che una copia di msvcp71.dll esiste sotto Windows \ System32 o nella directory del vostro eseguibile.
  3. Prova a escludere la DLL esplicitamente (aggiungi Qwt.pyd all'opzione dll_excludes e (dopo la costruzione) copiare Qwt.pyd (e _Qwt.pyd se esiste) al percorso eseguibile.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top