Pergunta

Existe uma maneira de criar um .exe autônomo de um script python. Executáveis ??gerados com py2exe pode ser executado apenas com pythonXX.dll. Eu gostaria de obter um .exe totalmente autônomo que não requer instalar a biblioteca python tempo de execução. Parece um ligando problema, mas usando a biblioteca estática em vez da dinâmica de um e seria também útil para aplicar uma tira de modo a remover os símbolos não utilizados.

Qualquer idéia?

Graças.

Alessandro

Foi útil?

Solução

Você pode fazer isso na versão mais recente do py2exe ...
Basta adicionar algo como o código abaixo no seu arquivo setup.py (parte chave é 'bundle_files': 1).

Para incluir seu pacote TkInter na chave instalar, usar 'inclui'.

distutils.core.setup(
      windows=[
            {'script': 'yourmodule.py',
             'icon_resources': [(1, 'moduleicon.ico')]
            }
      ],
      zipfile=None,
      options={'py2exe':{
                         'includes': ['tkinter'],
                         'bundle_files': 1
                        }
      }
  )

Outras dicas

Devido à forma como vinculador dinâmico do Windows funciona, você não pode usar a biblioteca estática se você usar .pyd ou .dll módulos Python; DLLs carregadas no Windows não compartilhar automaticamente seu espaço símbolo com o executável e assim requerem um DLL separado contendo os símbolos Python.

Se o seu propósito de ter um único executável é facilitar o download / e-mail, etc., eu resolvi isso agregação a saída py2exe usando Inno Setup . Esta é realmente melhor do que ter um único executável, porque em vez de fornecer um arquivo executável que pode ser descartado em algum diretório, um bem comportado aplicativo do Windows irá fornecer um desinstalador, aparecem na lista Adicionar / Remover Programas, etc. Inno alças todos isso por você.

Outra solução é criar um único exe com python e todas as suas dependências instalado dentro dele, incluindo o python.dll. Há um pouco de magia na embalagem, mas ele simplesmente funciona. Os detalhes aqui:

http://code.google.com /p/pylunch/downloads/detail?name=PyLunch-0.2.pdf

Esta não é a melhor maneira de fazê-lo, mas você pode considerar o uso executável SFX Archive tanto com o .exe e .dll arquivos dentro, e configurá-lo para executar o arquivo .exe quando é clicado duas vezes.

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