Agrupamento PyQwt com py2exe
Pergunta
Eu tenho um script de configuração padrão para py2exe com a qual eu agrupar aplicações baseadas em PyQt em arquivos do Windows .exe.
Hoje eu tentei um script simples que usa o módulo PyQwt, e não parece trabalho. py2exe funciona bem, mas quando eu executar o .exe cria, despeja o seguinte em um arquivo de log e não é executado:
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 eu olho no PyQt4\Qwt5\
no diretório build\bdist.win32\winexe\collect-2.5
, Qwt.pyd
é definitivamente lá.
Eu não consigo encontrar nada de útil on-line sobre este erro. O que poderia causar isso? Obrigado.
Solução
py2exe não é o único caminho, e talvez não seja o melhor caminho, para montar arquivos exe para Python aplicativos - em particular, dificilmente se em todos os suportes PyQt. Por favor, peço-vos, veja PyInstaller , o que sabe sobre PyQt (e Linux, e Mac, deve você se importa ...) -. apenas certifique-se de usar o check-out cabeça SVN, e não o "liberado" versão, que neste momento está seriamente desatualizado (uma questão que está esperamos indo embora em breve ...)
Outras dicas
Algumas opções:
- Tente jogar com o
bundle_files options
py2xe (3, 2, 1) (especialmente se você colocá-los todos em um grande zip biblioteca, algumas DLLs não gosto disso). - Certifique-se de uma cópia do
msvcp71.dll
existe sob windows \ system32 ou no diretório do seu executável. - Tente excluir a DLL explicitamente (adicionar Qwt.pyd à opção
dll_excludes
e (após a construção) copiar Qwt.pyd (e _Qwt.pyd se existir) para o seu caminho executável.