from os import listdir
modo= [name.split(".py")[0] for name in listdir("scripts") if name.endswith(".py")]
modules = {}
for modu in modo:
modules[modu] = __import__(modu)
test_samp.function("test")
你好! 如果,说“测试”_samp.py公司“存在于脚本目录中,为什么 这不允许我运行测试_samp.函数(“测试”)? 它返回:
^{pr2}$
您可以使用以下命令运行它:
代码中有两个问题:
__import__
不导入全局命名空间,它返回一个模块你真正想要的是:
上面的
__import__
返回scripts
包,其中加载了所有子模块。别忘了通过在scripts
目录中创建__init__.py
使其成为一个包。在另请参见:Why does Python's __import__ require fromlist?
您没有定义
test_samp
您正在定义modules['test_samp']
。另外,如果它在脚本中需要导入scripts.test_samp
在你的情况下,使用包。添加空的(或不是)
__init__.py
(带2个下划线)。并使用import scripts
。使用scripts.test_samp.function("test")
访问函数。您可以使用reload(scripts)
重新加载所有包。在相关问题 更多 >
编程相关推荐