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

PyCharm中Python包结构变更引发的导入错误解析求助

问题原因解析

1. ModuleNotFoundError: No module named 'package' 的原因

当你把package设为项目根目录后,PyCharm会将这个package目录添加到Python的sys.path(模块搜索路径)中。此时代码里如果还保留原来的import package语句,Python会在sys.path下寻找名为package的子目录/模块,但当前根目录就是package本身,不存在名为package的子模块,自然找不到,触发报错。

而原来的项目结构(project作为根)中,sys.path包含project目录,package是project的子目录,所以import package能正常匹配到目标模块。

2. ImportError: attempted relative import with no known parent package 的原因

Python的相对导入(比如from . import *)是专门为包内模块间的引用设计的,它依赖于模块被当作包的一部分来加载,而非作为独立脚本运行。

当你直接运行main.py时,Python会把这个脚本标记为顶级执行脚本(此时__name__的值为__main__),不会将它所在的目录当作一个包来识别,也就没有对应的“父包”上下文,相对导入失去了依赖的层级关系,因此触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:36:00