Python py2exe - Erro de carga de memória
Pergunta
Estou criando um aplicativo de nível médio em Python. Tudo funciona bem agora, e eu estou tentando fazer este windows um executável com py2exe. O executável é criado bem, mas quando eu tentar executá-lo, ele falha com o seguinte erro.
File "zipextimporter.pyo", line 82, in load_module
File "ffhandler.pyo", line 33, in ?
File "zipextimporter.pyo", line 82, in load_module
File "pyAA\__init__.pyo", line 1, in ?
File "zipextimporter.pyo", line 82, in load_module
File "pyAA\AA.pyo", line 8, in ?
File "zipextimporter.pyo", line 82, in load_module
File "pyAA\pyAAc.pyo", line 5, in ?
File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd
Eu estou usando pyAA nesta aplicação. Eu procurei internet, mas foi incapaz de obter qualquer solução. Copiei msvcp71.dll para windows / system32, mas ainda questão está lá.
Eu tinha resolvido mais cedo (cerca de 7 meses atrás), mas meu disco rígido caiu e quando eu tentar recriá-lo, eu não consigo resolver isso agora. : - (
Eu ficaria muito grato se alguém poderia me ajudar aqui.
EDIT: Quando eu uso py2exe sem opção de arquivos do pacote, ele está funcionando perfeitamente. Mas quando eu usar a opção arquivo de pacote, ele está falhando.
Eu tentei, sem opção zipfile, no qual ele cria um library.zip alongwith o executável. Mais uma vez ele falhou. Eu fiz de descompactação de library.zip usando 7-zip, e descobriu que _pyAAc.pyd está lá em pasta pyAA dentro do arquivo zip. Assim, parece que algum problema com a função memoryloadlibrary.
Quando eu tentei descompactar usando a função de janelas descompactar, ele falhou. Eu tive que usar o 7-zip para descompactá-lo. É uma possível pista?
Solução
Você está faltando alguma DLL na sua construção ...
Primeiro pesquisar seu disco rígido para o _pyAAC.pyd
arquivo. Certifique-se que está incluído (fornecido) na sua construção.
Em seguida, use 'dependência walker' no arquivo .pyd (em sua py2exe compilado versão!) Para ver o que é que ainda está faltando (outras DLL que estão causando a mensagem MemoryLoadLibrary
para o arquivo .pyd). Certifique-se que essas dependências também são enviados, ...