关于python:使用imp动态导入模块

Importing a module dynamically using imp

我试图动态地从不同的目录导入模块。 我正在回答这个问题的答案。 我在名为foo的目录中有一个名为bar的模块。 主脚本将在父目录中运行到foo。

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

1
2
3
4
#test.py
import imp

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

和bar.py的代码

1
2
3
4
5
#bar.py
class bar:

    def __init__(self):
          print"HELLO WORLD"

但是,当我运行test.py时,我收到此错误:

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


imp.load_source需要导入模块的路径名+文件名,您应该更改下面的源代码:

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

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