You need to enable JavaScript to run this app. Python同目录文件无法导入报错问题排查求助
优惠活动
大模型
产品
解决方案
定价
更多

Python同目录文件无法导入报错问题排查求助

两种导入写法的报错原因

  1. from Domination import meleeWeapons报错
  • 拼写错误:报错信息提示无法解析的包名为Dominations,比实际文件夹名Domination多了末尾的s,首先需要修正拼写
  • 路径不识别:直接运行main.py时,Python的模块搜索路径默认不包含Domination文件夹的上级目录,无法将Domination识别为合法包
  1. from . import meleeWeapons报错
  • 相对导入仅支持在包内的模块文件中使用,直接将main.py作为入口脚本运行时,该文件的身份是顶级脚本__main__,不属于任何包结构,相对导入规则失效,无法正确绑定导入的模块对象,调用对象时就会提示未定义。

解决方案

场景1:直接运行main.py作为项目入口(最常用)

直接使用同目录模块的无前缀导入即可:

  • 导入整个模块:import meleeWeapons,调用内部对象时使用meleeWeapons.myObject
  • 直接导入指定对象:from meleeWeapons import myObject,调用时直接写myObject即可

如果还是提示找不到模块,可以在导入前手动将当前文件所在目录加入搜索路径:

import os
import sys
# 将当前main.py所在的目录加入模块搜索路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

# 之后再导入模块
import meleeWeapons

场景2:需要使用包结构导入(比如项目后续会对外作为包发布)

  1. 先在Domination文件夹下新建一个空的__init__.py文件,标记该文件夹为Python可识别的包
  2. 不要直接运行main.py,切换到Domination文件夹的上级目录,使用模块运行命令启动:
    python -m Domination.main
  3. 此时from Domination import meleeWeapons、from . import meleeWeapons两种写法都可以正常生效。

内容的提问来源于stack exchange,提问作者goose.mp4

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 23:27:02