使用imp动态导入模块
我正在尝试动态地从一个不同的文件夹导入一个模块。我在参考这个问题的答案。我有一个名为bar的模块,它在一个叫foo的文件夹里。我的主脚本将在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 个回答
2
这看起来是个简单的路径问题——可以检查一下 __file__
或者当前工作目录(cwd)……也许先试试用绝对路径来访问文件?——这个 示例 可能会对你有帮助。
34
imp.load_source
需要你提供模块的路径和文件名才能导入。你应该把你的代码改成下面这个:
mod = imp.load_source("bar","./foo/bar.py")