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

Conda虚拟环境运行项目报ModuleNotFoundError: No module named 'flask'咨询

问题解决方案

主要问题(找不到flask模块)修复

根因

你遇到的核心问题是启动脚本调用的gunicorn不属于当前激活的conda虚拟环境:全局安装的gunicorn绑定了系统全局的Python解释器,只会读取全局路径下的依赖包,无法识别conda虚拟环境内安装的flask。你用apt全局安装python3-flask后能正常运行,也侧面印证了这个判断。

修复步骤

  • 先确认路径匹配问题
    激活虚拟环境后依次执行以下命令,确认输出路径均指向你当前使用的conda虚拟环境目录(通常为~/miniconda3/envs/你的环境名/bin/xxx):
which python
which pip
which gunicorn

如果gunicorn的输出路径不属于虚拟环境目录,就可以确定是该问题。

  • 修复脚本执行逻辑
    • 首先在启动脚本开头添加conda初始化配置,解决conda activate无法在脚本中生效的问题:
    # 替换为你本地miniconda/anaconda的实际安装路径下的profile.d/conda.sh
    source ~/miniconda3/etc/profile.d/conda.sh
    conda activate 你的虚拟环境名称
    
    • 在虚拟环境内重新安装gunicorn,确保它绑定虚拟环境的Python解释器:
    pip install gunicorn
    
    • 启动命令优先使用虚拟环境Python的模块调用方式,彻底避免调用到全局gunicorn:
    exec python -m gunicorn -b 0.0.0.0:5000 myapp:app
    

附加问题(依赖文件管理)解答

两个依赖文件的作用

  • environment.yml是conda生态专用的配置文件,可同时声明conda源依赖、Python版本、pip源依赖,仅适合使用conda管理环境的用户
  • requirements.txt是pip通用的依赖声明文件,无conda依赖,所有Python开发者都可以直接使用
    多数遗留项目同时提供两份文件,是为了覆盖不同使用习惯的开发者,不属于冗余配置。

整合/删除方案

  • 不建议直接删除requirements.txt,除非你确认团队所有成员都统一使用conda管理环境
  • 可以通过修改environment.yml实现两份文件的自动同步,不需要两边重复维护,只需在yml的dependencies节点下添加pip段指向requirements.txt即可,示例如下:
name: 你的环境名
channels:
  - defaults
dependencies:
  - python=3.8
  - 其他conda安装的依赖
  - pip
  - pip:
    - -r requirements.txt

配置完成后执行conda env create -f environment.yml时,会自动读取requirements.txt的内容安装pip依赖,仅需维护requirements.txt一份文件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:15:02