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

Python同目录模块导入报错:attempted relative import with no known parent package

解决Python同一目录下导入模块的相对导入错误

问题原因

直接运行main.py时,Python会将当前文件所在目录视为顶级模块目录,而非可识别的包结构。这时候authentication.py里的from .models import User这类相对导入语法就会失效——相对导入要求文件作为包的一部分被加载,而非直接执行脚本。

解决方案

方案1:将目录转为可导入的包

  • 在e_commerce_api目录下创建空的__init__.py文件,让Python识别该目录为一个包。
  • 从上级目录(即/Users/user/PycharmProjects/)运行脚本,执行命令:
    python -m e_commerce_api.main
    
    这种方式下,main.py里的from authentication import *和authentication.py里的from .models import User都无需修改,即可正常工作。

方案2:改用绝对导入

直接修改authentication.py中的导入语句,把相对导入替换为绝对导入:

# 将 authentication.py 里的
from .models import User
# 修改为
from models import User

修改后直接运行main.py即可,适合小型项目快速解决问题。

方案3:在PyCharm中配置Sources Root

  • 右键点击e_commerce_api目录,选择Mark Directory as -> Sources Root。
  • 配置完成后,PyCharm会自动将该目录加入Python模块搜索路径,不管是相对导入还是绝对导入,直接运行main.py都能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:03:20