python dynamic-import

Importación dinámica del módulo de Python



dynamic-import (2)

Aquí hay algo que marqué hace un tiempo que cubre algo similar:

Está un poco más allá de lo que quieres, pero la idea básica está ahí.

Tengo un servidor remoto confiable que almacena muchos módulos personalizados de Python. Puedo buscarlos a través de HTTP (por ejemplo, usando urllib2.urlopen ) como texto / simple, pero no puedo guardar el código del módulo obtenido en el disco duro local. ¿Cómo puedo importar el código como un módulo de Python totalmente operativo, incluidas sus variables globales e importaciones?
Supongo que tengo que usar alguna combinación de las funciones del módulo exec y imp , pero no he podido hacerlo funcionar todavía.


Parece que esto debería hacer el truco: importar un módulo generado dinámicamente

>>> import imp >>> foo = imp.new_module("foo") >>> foo_code = """ ... class Foo: ... pass ... """ >>> exec foo_code in foo.__dict__ >>> foo.Foo.__module__ ''foo'' >>>

Además, como se sugiere en el artículo de ActiveState, es posible que desee agregar su nuevo módulo a sys.modules :

>>> import sys >>> sys.modules["foo"] = foo >>> from foo import Foo <class ''Foo'' …> >>>