python: Importar módulo de memoria

Posible duplicado:
¿Cómo cargar módulos comstackdos de python desde la memoria?

Tengo algún archivo de Python en la memoria que puede ser StringIO.I cómo importar un archivo de módulo almacenado en la memoria. No quiero guardarlo en el disco y luego cargarlo.

Parece que:

import StringIO.StrngIO([buf]) 

Un buen enfoque es usar ganchos de importación Meta personalizados como se describe en PEP 302 . Uno puede escribir una clase que importe módulos dinámicamente desde un diccionario de cadenas:

 """Use custom meta hook to import modules available as strings. Cp. PEP 302 http://www.python.org/dev/peps/pep-0302/#specification-part-2-registering-hooks""" import sys import imp modules = {"a" : """def hello(): return 'Hello World A!'""", "b": """def hello(): return 'Hello World B!'"""} class StringImporter(object): def __init__(self, modules): self._modules = dict(modules) def find_module(self, fullname, path): if fullname in self._modules.keys(): return self return None def load_module(self, fullname): if not fullname in self._modules.keys(): raise ImportError(fullname) new_module = imp.new_module(fullname) exec self._modules[fullname] in new_module.__dict__ return new_module if __name__ == '__main__': sys.meta_path.append(StringImporter(modules)) # Let's use our import hook from a import hello print hello() from b import hello print hello() 

Por cierto: si no quieres mucho y solo quieres importar una cadena, entonces apégate a la implementación del método load_module. Todo lo que necesitas está dentro de él.