You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从同目录Python文件正确导入两个变量?排查NameError报错

解决Python导入模块变量时的NameError问题

我来帮你快速定位问题所在!你遇到的NameError完全是因为导入方式和后续调用不匹配导致的,咱们一步步理清楚:

问题根源

你写的导入语句是:

from save_state_mod import event , save_missing_weight

这种写法是直接把save_state_mod里的event和save_missing_weight两个变量导入到当前代码的命名空间里了,相当于这两个变量已经“直接存在”在你的当前文件中,不需要再通过save_state_mod.xxx的方式去调用。

而你后续又写了:

smw = save_state_mod.save_missing_weight
ev = save_state_mod.event

这时候Python根本找不到save_state_mod这个名称(因为你没导入整个模块),自然就抛出NameError了。

两种解决办法

办法一:直接使用导入的变量

既然已经把变量导入到当前命名空间,直接用变量名即可:

from save_state_mod import event , save_missing_weight
smw = save_missing_weight  # 直接用变量名
ev = event  # 直接用变量名

办法二:导入整个模块

如果你更习惯通过模块名来访问变量,可以改成导入整个模块:

import save_state_mod  # 导入整个模块
smw = save_state_mod.save_missing_weight  # 用模块名.变量名访问
ev = save_state_mod.event  # 用模块名.变量名访问

额外说明

你提到添加了__init__.py文件,其实在Python 3.3及以上版本中,同一目录下的模块不需要这个文件也能正常导入(Python默认支持命名空间包),所以这个文件不是解决当前问题的关键哦。

内容的提问来源于stack exchange,提问作者MBENKI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 15:47:48