Domanda

Ho bisogno di un modo per importare l'intera libreria standard di Python nel mio programma.

Anche se questa può sembrare una cattiva idea, voglio farlo, quindi py2exe impacchetterà l'intera libreria standard con il mio programma, in modo che i miei utenti possano importare da esso nella shell che do loro.

C'è un modo semplice per farlo?

Punti bonus: preferirei che questa azione NON importasse i pacchetti che ho installato nei pacchetti del sito e che non sono stati forniti con Python. Tuttavia, questo non è critico.

È stato utile?

Soluzione

Ehi, ho appena pensato a qualcosa: ho solo bisogno di un elenco di tutti i moduli in stdlib, e quindi genererò automaticamente uno script Python che importa ciascuno di essi " manualmente " ;, in questo modo:

import re
import math
import time
# ...

E poi includilo nel mio programma.

Quindi tutto ciò di cui ho bisogno ora è un elenco facilmente formattato di tutti i moduli / pacchetti in stdlib. Ora come posso ottenerlo?

UPDATE:

Ho ottenuto l'elenco in questo modo: ho installato Python 2.6 su una macchina virtuale, quindi ho eseguito in IDLE:

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

Quindi copia incollato l'output nel mio IDE e crea un piccolo script per scrivere:

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

In un modulo Python che importa nel mio programma.

Funziona! py2exe racchiude l'intero stdlib.

UPDATE:

Ho creato un pacchetto per farlo. Vorrei caricarlo qui ma dal momento che non vedo alcun pulsante di caricamento, puoi toglierlo dalla cartella del mio progetto:

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

È nella cartella src , il pacchetto si chiama almostimportstdlib ed è documentato.

Altri suggerimenti

Ho creato un file zip da tutta la libreria standard di Python e l'ho aggiunto a sys.path all'avvio del programma.

Puoi dare un'occhiata alle fonti qui (progetto abbandonato )

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top