[英]Importing a fixed module from a dynamic path at runtime in python3
我四处搜寻,但未找到解决此特定Python3问题的解决方案。 也许是我正在使用的关键字,或者可能只是一个特殊的用例。 如果我的问题是后者,这是我的问题:
我正在开发一个python(3)脚本,该脚本需要使用已在用户主目录中本地编译的python模块。 作为配置脚本,我没有什么花哨的东西可以将用户的路径配置为自动化过程。 我想在运行时将python模块的路径作为命令行参数传递给脚本,然后动态加载该模块。 例如,我将呼叫:
$ myscript.py --modpath /home/user/path/to/ModuleSource
然后在我分析命令行参数时,在我的代码中调用如下内容:
import sys
sys.path.append(localModulePath)
import GlobalModuleName
问题在于,在使用模块方法的脚本的静态代码中,只有在运行时将模块的定义传递给脚本时,才能解析实际的模块。 也就是说,如果我有如下的python代码
GlobalModuleName.moduleFunc()
我收到“ NameError:名称'GlobalModuleName'未定义 ”的运行时错误。
如何使该配置正常工作而不产生错误? 我确定将使用模块的动态定义的代码是正确的。 感谢您提前的指示。
这对我来说很完美
module1.py import os导入系统
def func1():
print("Executed func1 of module1")
main.py
import sys
pathPassed=sys.argv[1]
sys.path.append(pathPassed)
import module1
module1.func1()
执行
python main.py ThePathformodule1.py
Executed func1 of module1
您唯一需要注意的是, import
语句应该在sys.path.append
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.