Pergunta

Eu preciso de uma maneira de importar toda a biblioteca padrão do Python em meu programa.

Enquanto isto pode parece ser uma má idéia, eu quero fazer isso é tão py2exe vai embalar toda a biblioteca padrão com meu programa, então meus usuários poderiam importar com isso no shell que eu dou-los.

Existe uma maneira fácil de fazer isso?

Os pontos de bónus: Eu preferiria que esta ação não irá importar os pacotes que foram instalados no site-packages e que não vêm com o Python. No entanto, este não é crítica.

Foi útil?

Solução

Ei, eu só pensava em uma coisa: eu só preciso de uma lista de todos os módulos em stdlib, e então eu vou gerar automaticamente um script Python que as importações de cada um deles "manualmente", como este:

import re
import math
import time
# ...

E, em seguida, incluir isso com o meu programa.

Então tudo que eu preciso agora é uma lista de fácil formatada de todos os módulos / pacotes em stdlib. Agora como faço para obter isso?

UPDATE:

Eu tenho a lista como esta: Eu instalei o Python 2.6 em uma máquina virtual, em seguida, correu em IDLE:

import pkgutil
stuff = [thing[1] for thing in pkgutil.iter_modules()]
stuff.sort() # To make it easy to look through
print(stuff)

Em seguida, copie colado a saída no meu IDE, e fez um pequeno script para escrever:

if False:
    import re
    import email
    import time
    # ...

Em um módulo Python que eu importar no meu programa.

Ele funciona! py2exe embala toda a stdlib.

UPDATE:

Eu criei um pacote que faz isso. Eu enviá-lo aqui, mas desde que eu não vejo nenhum botão de upload, você pode obtê-lo fora de minha pasta de projeto:

http://github.com/cool-RR/PythonTurtle/tree/master

É no src pasta, o pacote é chamado almostimportstdlib e ele está documentado.

Outras dicas

Eu criei um arquivo zip de toda a biblioteca padrão do Python e, em seguida, acrescentou que para sys.path quando o programa começou.

Você pode ter um olhar para as fontes aqui (projeto abandonado )

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