使用imp动态导入模块

时间:2011-02-11 14:37:33

标签: python dynamic import

我正在尝试动态导入其他目录中的模块。我正在按照this question的回答。我在名为foo的目录中有一个名为bar的模块。主脚本将在父目录中运行到foo。

这是我到目前为止在我的测试脚本中的代码(在父目录中运行到foo)

#test.py
import imp

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

和bar.py的代码

#bar.py
class bar:

    def __init__(self):
          print "HELLO WORLD"

但是当我运行test.py时出现这个错误:

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

2 个答案:

答案 0 :(得分:32)

imp.load_source需要导入模块的路径名+文件名,您应该更改以下内容的来源:

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

答案 1 :(得分:2)

似乎是一个简单的路径问题 - 检查__file__或cwd ...也许先尝试绝对文件路径? - 这imp example可能会有所帮助。