使用imp动态导入模块

Ric*_*ard 18 python import dynamic

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

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

#test.py
import imp

mod = imp.load_source("bar","./foo")
Run Code Online (Sandbox Code Playgroud)

和bar.py的代码

#bar.py
class bar:

    def __init__(self):
          print "HELLO WORLD"
Run Code Online (Sandbox Code Playgroud)

但是,当我运行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
Run Code Online (Sandbox Code Playgroud)

Luc*_* S. 32

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

mod = imp.load_source("bar","./foo/bar.py")
Run Code Online (Sandbox Code Playgroud)