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

PyCharm运行正常的Flask项目在终端执行报ModuleNotFoundError

问题描述

项目结构如下:

myproject 
 --src 
     -- cache  
             --- cache.py
     -- storeservice 
            --- upload.py
           
     -- esService 
            --- es.py
     -- ui
           --- html
           --- static 
    -- main
          --- controller.py 

在controller.py中使用了导入语句:

from storeservice.upload import Upload 

该代码在PyCharm中运行正常,但在终端执行python3 controller.py时,出现错误:

from storeservice.upload import Upload
ModuleNotFoundError: No module named 'storeservice'
无需修改代码的解决方法

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

在终端中先将src目录添加到Python的模块搜索路径,再运行脚本。假设当前处于myproject目录下,执行:

PYTHONPATH=./src python3 src/main/controller.py

如果已经进入src/main目录,则执行:

PYTHONPATH=../ python3 controller.py

方法2:以模块方式运行脚本

在myproject目录下,使用-m参数以模块形式启动脚本,Python会自动识别项目结构:

python3 -m src.main.controller

方法3:永久配置PYTHONPATH

如果需要每次登录EC2终端都能直接运行脚本,可将src目录路径添加到shell配置文件中。以bash为例:

echo 'export PYTHONPATH=/path/to/myproject/src:$PYTHONPATH' >> ~/.bashrc
source ~/.bashrc

替换/path/to/myproject为实际的项目路径,之后即可直接运行:

python3 src/main/controller.py

原因说明

PyCharm默认会将项目的src目录标记为Sources Root,自动添加到Python的模块搜索路径中,因此能正常导入模块;而终端默认不会包含该路径,导致找不到storeservice模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:12:40