首页 > 解决方案 > Python / Spyder - 未定义变量错误,当变量在环境中定义并显示时。即使出现错误,代码也能正常工作

问题描述

在 Python 4.1.5 (IDE:Spyder) 中定义变量时出现一个奇怪的错误。但是,即使出现错误,代码也可以正常运行!

在此处输入图像描述

在此处输入图像描述

如您所见,该变量social_cost_of_carbon存储为变量,但我不断收到该错误,如图 1 所示(错误写道:Undefined name 'social_cost_of_carbon' (Pyflakes E)

我觉得我声明这些变量的方式可能是原因:

def convert_to_var(df):
    desc = []
    val = []  
    
    for i,row in df.iterrows():
        desc.append(i)
        val.append(row) 
        
    return dict(val)

val_dict = convert_to_var(IA)
locals().update(val_dict)

由于代码运行没有任何问题,我没有做任何事情来解决这个问题。我是否需要担心并解决这个问题,或者我只是让它继续运行而不处理错误,因为代码运行顺利?

提前谢谢你。

标签: pythonenvironment-variablesspyderpyflakesundefined-variable

解决方案


这里是 Spyder 维护者)正如您所猜测的,问题是您正在使用代码中的这一行动态创建变量:

locals().update(val_dict)

由于我们的 linter 找不到正确声明该变量的位置,因此它报告它未定义。但是您可以安全地忽略该消息。

注意:目前无法隐藏 linter 警告。但是,在未来的版本中,我们将通过在表单的行尾添加注释来提供一种方法# noqa


推荐阅读