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

PyCharm运行正常但终端报ModuleNotFoundError的原因与解决方法

解决终端运行PyCharm项目时ModuleNotFoundError: No module named 'utilities'的问题

我遇到过完全一样的问题!这本质上是PyCharm和终端对Python模块搜索路径的处理方式不一样导致的,咱们先理清楚原因,再看解决办法:

问题原因

PyCharm会自动把你的项目根目录(也就是project folder)添加到Python的模块搜索路径(sys.path)里,所以它能顺利找到utilities这个包。但终端默认只会把当前运行脚本的目录或者系统默认的Python路径加入sys.path——比如你直接在work目录下跑main.py,或者在其他目录执行脚本时,Python找不到utilities所在的项目根目录,自然就抛出ModuleNotFoundError了。

解决方法

方法一:从项目根目录用模块方式运行(推荐)

这是Python官方推荐的规范运行方式,步骤很简单:

  1. 打开终端,切换到你的项目根目录(project folder)
  2. 执行以下命令:
    python -m work.main
    
    这种方式会让Python自动把当前目录(项目根)加入模块搜索路径,完美适配你的导入写法,不会再出现找不到模块的问题。

方法二:临时设置PYTHONPATH环境变量

如果你不想切换目录,可以临时把项目根目录加到PYTHONPATH环境变量中,让Python能找到utilities包:

  • Windows cmd终端:
    set PYTHONPATH=你的项目根目录绝对路径
    python work\main.py
    
  • Linux/macOS终端:
    export PYTHONPATH=你的项目根目录绝对路径
    python work/main.py
    
    注意:这个设置只在当前终端会话有效,关闭终端后就会失效,适合临时调试用。

方法三:在main.py中手动添加路径

可以在main.py的最开头加入一段代码,手动把项目根目录加入Python的搜索路径:

import sys
import os

# 获取当前脚本所在目录的父目录(也就是项目根目录)
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

添加后,不管你从哪个目录运行main.py,Python都能找到utilities包。不过这种方式属于硬编码路径,适合个人项目快速解决,团队协作时更推荐用前两种方法来统一环境配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:21:13