Pregunta

Necesito una forma de importar la biblioteca estándar de Python completa a mi programa.

Si bien esto puede parecer una mala idea, lo que quiero hacer es que py2exe empaquetará la biblioteca estándar completa con mi programa, para que mis usuarios puedan importar desde ella en el shell que les doy.

¿Hay una manera fácil de hacer esto?

Puntos de bonificación: preferiría que esta acción NO importe los paquetes que he instalado en los paquetes de sitio y que no vinieron con Python. Sin embargo, esto no es crítico.

¿Fue útil?

Solución

Oye, solo pensé en algo: solo necesito una lista de todos los módulos en stdlib, y luego generaré automáticamente un script de Python que importa cada uno de ellos " manualmente " ;, como este:

import re
import math
import time
# ...

Y luego incluir eso en mi programa.

Así que todo lo que necesito ahora es una lista con formato fácil de todos los módulos / paquetes en stdlib. Ahora, ¿cómo consigo eso?

ACTUALIZAR:

Obtuve la lista de esta manera: instalé Python 2.6 en una máquina virtual y luego lo ejecuté en IDLE:

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

Luego copie la salida pegada en mi IDE, e hizo un pequeño script para escribir:

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

En un módulo de Python que importe en mi programa.

Funciona! py2exe empaqueta todo el archivo estándar.

ACTUALIZAR:

He creado un paquete que hace esto. Lo subiría aquí, pero como no veo ningún botón de carga, puede sacarlo de la carpeta de mi proyecto:

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

Está en la carpeta src , el paquete se llama almostimportstdlib y está documentado.

Otros consejos

Creé un archivo zip de toda la biblioteca estándar de Python y luego lo agregué a sys.path cuando se inició el programa.

Puede consultar las fuentes aquí (proyecto abandonado) )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top