python - eyed3 - Importando un módulo dinámicamente usando imp
dynamic (2)
Estoy tratando de importar un módulo de un directorio diferente de forma dinámica. Estoy siguiendo una respuesta de esta pregunta . Tengo un módulo llamado barra en un directorio llamado foo. La secuencia de comandos principal se ejecutará en el directorio principal para foo.
Aquí está el código que tengo hasta ahora en mi script de prueba (que se ejecuta en el directorio principal para foo)
#test.py
import imp
mod = imp.load_source("bar","./foo")
y codigo para bar.py
#bar.py
class bar:
def __init__(self):
print "HELLO WORLD"
Pero cuando ejecuto test.py me sale 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
Parece ser un simple problema de __file__
: compruebe __file__
o __file__
... ¿Quizás intente primero una ruta de archivo absoluta? - Este ejemplo podría ayudar.
imp.load_source
requiere la ruta + nombre de archivo del módulo para importar, debe cambiar su fuente por la siguiente:
mod = imp.load_source("bar","./foo/bar.py")