Pregunta

Tengo un script de configuración estándar para py2exe con el que incluyo aplicaciones basadas en PyQt en archivos .exe de Windows.

Hoy probé un script simple que usa el módulo PyQwt y no parece funcionar.py2exe se ejecuta bien, pero cuando ejecuto el .exe que crea, descarga lo siguiente en un archivo de registro y no se ejecuta:

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

cuando miro dentro PyQt4\Qwt5\ en el build\bdist.win32\winexe\collect-2.5 directorio, Qwt.pyd Definitivamente está ahí.

Parece que no puedo encontrar nada útil en línea sobre este error.¿Qué podría causarlo?Gracias.

¿Fue útil?

Solución

py2exe no es la única forma, y ​​quizás no la mejor, de reunir archivos exe para aplicaciones Python; en particular, casi no es compatible con pyqt, si es que lo es.Por favor, te lo ruego, mira PyInstaller, que SÍ conoce PyQt (y Linux y Mac, si te importa...) - solo asegúrate de usar el control principal de SVN, no la versión "lanzada", que en este momento está muy desactualizada (una problema que, con suerte, desaparecerá pronto...).

Otros consejos

Algunas opciones:

  1. Trate de jugar con la bundle_files options py2xe (3, 2, 1) (sobre todo si se ponen todos en una gran postal de la biblioteca, algunos archivos DLL que no les gusta).
  2. Asegúrese de que una copia de msvcp71.dll existe bajo Windows \ System32 o en el directorio de su ejecutable.
  3. Intente excluir explícitamente el DLL (añadir Qwt.pyd a la opción dll_excludes y (después de la construcción) copiar Qwt.pyd (y _Qwt.pyd si es que existe) a su ruta ejecutable.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top