Pergunta

Eu tenho um problema: Eu usei py2exe para meu programa, e funcionou no meu computador. I empacotado com Inno Setup (ainda trabalhava no meu computador), mas quando eu enviá-lo para um computador diferente, eu tenho o seguinte erro ao tentar executar a aplicação: "CreateProcess falhou; código 14001." O aplicativo não será executado. (Nota:. Eu estou usando wxPython eo módulo de multiprocessamento no meu programa) Eu pesquisei para ele um pouco e descobriu que o que o usuário deve instalar alguns MS redistributable alguma coisa, mas eu não quero tornar a vida complicada para meus usuários. Existe uma solução?

Versões:

Python 2.6.2c1, py2exe 0.6.9, Windows XP Pro

Foi útil?

Solução

Você precisa incluir msvcr90.dll, Microsoft.VC90.CRT.manifest e python.exe.manifest (renomeado para [nomedoseuapp] .exe.manifest) no seu diretório de instalação. Estes arquivos estarão no diretório Python26 em seu sistema se você instalou o Python com o "Just for me" opção.

As instruções para fazer isso pode ser encontrado aqui .

Não se esqueça de chamar multiprocessing.freeze_support () em sua função principal, também, ou você vai ter problemas quando você iniciar um novo processo.

Enquanto outros têm discutido, incluindo o tempo de execução MSVC no seu pacote de instalar, a solução acima funciona quando você deseja distribuir apenas um único arquivo .zip com todos os seus arquivos. Ele evita a necessidade de criar um pacote de instalação separado quando você não quer que complicação adicional.

Outras dicas

Você deve ser capaz de instalar que MS coisa redistribuível como parte de sua Inno setup exe Setup.

Quando você executa py2exe, olhar atentamente para as mensagens finais quando é concluída. Dá-lhe uma lista de DLLs que ele diz que são necessários pelo programa, mas que py2exe não agrupar automaticamente.

Muitos na lista são confiavelmente disponível em qualquer instalação do Windows, mas haverá alguns que você deve agrupar manualmente para sua instalação Inno Setup. Alguns só são necessários se você deseja implantar no antigo Windows instala por exemplo Win 2000 ou anterior.

Você pode enviar as DLLs de tempo de execução em questão com o seu aplicativo como uma "assembléia privada". Isto significa simplesmente colocando uma cópia de um diretório especialmente nomeado contendo as DLLs de tempo de execução e seus manifestos ao lado de seu executável.

a minha resposta a este post .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top