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

同一目录下Python模块导入报错:Tower.py无法导入Entity.py求助

解决同一目录下模块导入失败的问题

问题原因

Python查找模块时会从sys.path列表中的路径依次检索。如果直接运行Tower.py(比如在folder目录执行python scripts/Tower.py),sys.path默认包含当前工作目录(即folder)而非scripts目录,因此找不到同目录下的Entity.py;若在scripts目录直接运行Tower.py,虽sys.path会包含scripts,但主脚本无法使用相对导入,仍会报错。

解决方案

方案1:使用相对导入(需从上层目录运行)

修改Tower.py的导入代码:

from . import Entity
# 或直接导入类
from .Entity import Entity

回到folder目录,执行python -m scripts.Tower运行脚本(注意不要加.py后缀),Python会将scripts当作包处理,允许相对导入。

方案2:手动添加脚本目录到sys.path

在Tower.py最开头添加以下代码,把当前脚本所在的scripts目录加入模块搜索路径:

import sys
import os
# 获取当前脚本所在目录的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 将该目录加入sys.path
sys.path.append(script_dir)

# 现在可正常导入
import Entity

这种方式无论从哪个目录运行Tower.py,都能找到同目录下的Entity模块。

方案3:以Main.py作为入口运行

如果项目入口是Main.py,修改Tower.py的导入路径为基于顶层目录:

from scripts import Entity
# 或
from scripts.Entity import Entity

在folder目录执行python Main.py,此时folder会被当作顶层模块目录,Python能正确检索到scripts下的所有模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:01:12