【问题标题】:Importing a module dynamically using imp使用 imp 动态导入模块
【发布时间】:2011-06-25 14:36:46
【问题描述】:

我正在尝试从不同的目录动态导入模块。我正在关注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

【问题讨论】:

  • 尝试改用imp.load_module

标签: python dynamic import


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-20
      • 2017-10-11
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2020-09-12
      • 2020-07-25
      相关资源
      最近更新 更多