2011-02-11 18 views
15

Estoy intentando importar dinámicamente un módulo de un directorio diferente. Estoy siguiendo una respuesta de this question. Tengo un módulo llamado bar en un directorio llamado foo. La secuencia de comandos principal se ejecutará en el directorio principal para foo.Importación de un módulo de forma dinámica utilizando imp

Aquí está el código que tengo hasta ahora en mi escritura de la prueba (que se ejecuta en el directorio padre a foo)

#test.py 
import imp 

mod = imp.load_source("bar","./foo") 

y el código de bar.py

#bar.py 
class bar: 

    def __init__(self): 
      print "HELLO WORLD" 

Pero cuando corro test.py consigo este error:

Traceback (most recent call last): 
    File "C:\Documents and Settings\user\Desktop\RBR\test.py", line 3, in <module> 
    mod = imp.load_source("bar","./foo") 
IOError: [Errno 13] Permission denied 
+0

trate de usar 'imp.load_module' vez – Blauhirn

Respuesta

26

imp.load_source requiere el nombre camino + fichero del módulo para importar, debe cambiar su fuente para la de abajo:

mod = imp.load_source("bar","./foo/bar.py") 
2

parece ser un simple problema de encauzamiento - comprobar __file__ o cwd ... ¿Tal vez intentar primero una ruta de archivo absoluta? - Esto imp example puede ayudar.

Cuestiones relacionadas