在我的Python代码中,我有:
该程序没有找到问题" vmtkscripts.py"。 但是,在vmtkscripts.py中,我有"
__all__ = ['vmtkactivetubes']
for item in __all__:
exec('from '+item+' import *')
其中" vmtkactivetubes.py"与" vmtkscripts.py"位于同一文件夹中。
跑完后我得到" ModuleNotFoundError:没有名为' vmtkactivetubes'" 但是,这来自vmtk import vmtkactivetubes"并没有给我任何错误。
如果你能帮助我,我真的很感激,为什么会出现这样的错误?
答案 0 :(得分:0)
这是范围问题,
尝试使用:
exec('from '+item+' import *', globals())
在所有情况下,如果省略可选部分,则执行代码 在目前的范围内。如果只提供全局变量,则必须是a 字典,将用于全局和本地 变量。如果给出全局变量和局部变量,则将它们用于 全局变量和局部变量。如果提供,当地人可以 任何映射对象。请记住,在模块级别,全局和本地 是相同的字典。如果exec获得两个单独的对象作为全局变量 和本地人一样,代码将被执行,好像它嵌入在一个 课程定义。