我试图在导入了一些依赖项的特定环境中执行一些代码,但我一直收到一个错误,说找不到模块。我打开了一个调试器,我在全局环境中看到了这个模块,但当我试图使用正常的作用域方法访问这个模块时,python似乎找不到它
(Pdb) globals['my_import']
<module 'tmp0fZtOs' from '/tmp/tmp0fZtOs.py'>
(Pdb) my_import
*** NameError: name 'my_import' is not defined
我还发现了一些文档,其中提到全局变量需要被显式引用,以便使它们对函数可用,但当我尝试以下操作时,我也会遇到错误。
(Pdb) def temp_function(): global my_import; print my_import
(Pdb) temp_function()
*** NameError: global name 'my_import' is not defined
有什么想法可以让我的执行代码使用这个模块吗?
您声明my_import
是全局的,但没有给它赋值,因此它不存在。
def temp_function():
global my_import
my_import = 1
print(my_import)
temp_function()
if "my_import" in globals().keys():
print("Variable is global")
print(globals()['my_import'])