Python运行报错NameError: name 'sim_functions' is not defined求助
报错原因
gri.py中使用的导入语句为from sim_functions import consolidate,该导入规则仅会将指定的consolidate函数引入当前文件的命名空间,不会将sim_functions模块本身作为变量导入到当前作用域。因此代码中调用sim_functions.consolidate()或sim_functions.consolidate_programmatic()时,Python无法识别sim_functions这个变量名,直接触发NameError。- 额外存在函数名不匹配问题:
sim_functions.py中仅定义了consolidate_programmatic函数,不存在名为consolidate的函数,修复命名错误后如果不调整导入规则,还会触发导入失败报错。
解决方法
你可以二选一调整代码:
方案1:导入完整模块
修改gri.py的导入语句,直接导入整个sim_functions模块,保留现有调用规则:
# 替换原来的 from sim_functions import consolidate import sim_functions
修改后原有的sim_functions.xxx格式的调用可以正常生效,注意调用的函数名要和sim_functions.py中定义的名称保持一致。
方案2:调整调用格式,保留from导入规则
如果不需要使用模块下的其他功能,可以继续使用from ... import ...的导入方式,直接去掉调用时的sim_functions.前缀即可,同时导入你实际需要的函数:
# 导入你实际要调用的函数 from sim_functions import consolidate_programmatic def method(): # 直接调用导入的函数名,不需要加模块前缀 programmatic_dict = consolidate_programmatic(multiple_per_tag)
内容的提问来源于stack exchange,提问作者StressedBoi69420
相关产品推荐
相关产品推荐

