【发布时间】:2016-06-10 19:44:17
【问题描述】:
我有以下设置。第一个文件 (config.py) 定义了一个路径,它告诉 file1.py 要导入哪个模块。
#file:config.py
moduleToBeImported="/here/is/some/path/file2.py"
import file1
然后在file1.py中,导入config.py中定义的模块
#file:file1.py
import imp
foo = imp.load_source('module.name',moduleToBeImported)
是否可以将变量moduleToBeImported从config.py传递给file1.py?
在当前设置中,我得到了预期的错误:NameError: name 'moduleToBeImported' is not defined
【问题讨论】:
-
将
foo = ...放入函数中,并在config.py中执行以下操作:function(moduleToBeImported)? -
为什么要这样导入模块?您是否正在尝试创建插件系统?为什么不能像普通 python 模块一样简单地安装
file2? -
也许有更好的方法可以做到这一点,但我正在开发一个框架,我希望 file1.py 不被用户更新。用户将创建 config.py 文件和 file2.py 文件,但不会更新 file1.py 文件。然后要运行程序,他们可以简单地运行 config.py 文件,该文件从其他文件中调用函数和类。
标签: python python-2.7 import