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.

Foi útil?

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:

  1. 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).
  2. Certifique-se de uma cópia do msvcp71.dll existe sob windows \ system32 ou no diretório do seu executável.
  3. 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.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top