py2exe incluindo MSVC DLLs no .exe
Pergunta
Ao usar py2exe para distribuir aplicações Python com wxPython, alguns MSVC DLLs são geralmente necessários para fazer o trabalho .exe em máquinas recém-instaladas. Em particular, as duas mais comuns são DLLs msvcp71.dll e msvcr71.dll
O primeiro pode ser incluído no .exe usando esta dica . No entanto, este último é apenas colocado no dir dist
por py2exe e não no executável, mesmo se eu pedir especificamente para incluí-lo.
Qualquer idéia de como fazer com que py2exe para incluir tanto dentro do .exe?
Solução
Não seria deixar de lançamento, então? Você quer msvcr71.dll
no mesmo diretório como o exe, para que o carregador da biblioteca será capaz de encontrar e vinculá-lo em mapa de memória do aplicativo.
É necessário para a operação básica, então você não pode simplesmente deixar py2exe
descompactá-lo com o resto das DLLs.
Outras dicas
py2exe não pode fazer isso. Você pode embrulhar py2exe (há um exemplo no wiki mostrando como fazer isso com NSIS) ; você pode construir o seu próprio invólucro se estiver usando NSIS ou InnoSetup não era uma opção.
Como alternativa, se você é positivo que seus usuários terão uma cópia compatível do msvcr71.dll instalado (usuários IIRC Vista ou XP SP2), então você poderia fugir sem incluí-lo. Mais útil, talvez, se você usar o Python 2.3 (ou mais), então as ligações Python contra msvcr.dll em vez de msvcr71.dll, e qualquer usuário do Windows terá que instalado, então você simplesmente não pode se preocupar com isso.
Sim, py2exe pode fazer isso. Visite este link. E se você estiver usando python2.7, substitua "msvcr71" para " msvcp90" .