Precisamos usar ferramentas como o py2exe, o problema é que sem ler toda a documentação do py2exe, você acaba gerando EXE's, que vem carregados de N arquivos...
Segue duas dicas para gerar um único arquivo EXE, claro que ele fica enorme, 5.2mb, mas é melhor do que um monte de arquivos, em alguns casos...
A primeira é no arquivo setup.py colocar a opção zipfile=None:
setup(windows=['CodigoX.py'],zipfile=None)Isso faz com que ele deixe de gerar o arquivo library.zip...
Agora a segunda dica é no comando que faz a chamada do py2exe, incluindo o parâmetro --bundle 1:
python setup.py py2exe --bundle 1Isso faz com que o arquivo gerado, inclua dentro dele mesmo todos os demais arquivos, gerando um EXE mais gordo, mas em tese mais fácil de distribuir...
Outra dica, refere-se a quando fazemos o include de um arquivo .py nosso, o py2exe, pelo menos aqui não inclui ele na library.zip, para inclui-lo, devemos colocar o seguinte parâmetro na chamada do py2exe, --includes SeuArquivoPySemExtensão:
python setup.py py2exe --includes SeuArquivoPySemExtensão --bundle 1Pronto com essas dicas, seus executáveis Python serão mais amigáveis aos usuários, e mais fácil de copiar, já que se usarmos o Tkinter, ele cria uma pasta com incríveis 951 arquivos com 4,46MB no total, mas usando no disco 7,08MB... Ou seja, copiar isso para um pendrive demora......
Fonte:
http://ricobl.wordpress.com/2009/04/13/py2exe-multiplos-executaveis-compartilhando-recursos/
http://bytes.com/topic/python/insights/580045-simple-guide-using-py2exe