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

Ubuntu 20.04环境下Flask项目更新Pipfile后启动报错:Error: While importing 'wsgi', an ImportError was raised

排查 Flask 启动时 ImportError importing 'wsgi' 的解决方案

我来帮你一步步排查这个问题,这个报错只给出了表层提示,咱们得深挖具体原因,试试下面这些步骤:

1. 先获取完整的错误追踪信息

默认的Error: While importing 'wsgi', an ImportError was raised没说清楚到底哪里出问题了。你可以试试两种方法拿到详细报错:

  • 用 debug 模式启动:flask run --debug
  • 直接运行你的wsgi文件:python wsgi.py
    这样会打印完整的栈追踪,能明确看到是wsgi文件里的某个模块导入失败,还是更新后的依赖包有兼容性问题。

2. 检查依赖版本冲突

你更新了部分包,很大概率是新版本的包和现有依赖(比如你用的Flask 2.0.2)不兼容:

  • 对比更新前后的Pipfile.lock(如果有备份),找出版本变化的包,重点关注Flask的核心依赖:Werkzeug(Flask 2.0.2要求>=2.0.0,<2.1.0)、Jinja2(要求>=3.0.0,<3.1.0),如果这些依赖被升级到了超出范围的版本,就会引发导入错误。
  • 如果你有旧版本的Pipfile.lock,可以回退试试:pipenv install --ignore-pipfile,如果能正常启动,就说明是这次包更新导致的问题。

3. 确认虚拟环境的一致性

有时候VS Code的解释器配置和终端的pipenv虚拟环境不匹配:

  • 在终端运行pipenv --venv,得到虚拟环境的路径,然后在VS Code的解释器选择面板里,确认选中的是这个路径下的Python解释器。
  • 运行pipenv run pip list,检查所有依赖的版本是否和Pipfile.lock完全一致,有没有遗漏或者意外升级的包。

4. 检查wsgi.py文件的导入逻辑

更新包后,wsgi.py里的某些导入可能失效了:

  • 逐行检查wsgi.py中的import语句,看看有没有依赖某个包的特定功能,而该功能在新版本中被移除、改名或者参数变化了。
  • 可以在wsgi.py的最开头添加两行代码,强制打印详细错误:
import traceback
traceback.print_exc()

然后运行python wsgi.py,就能看到具体是哪一行导入出问题了。

5. 彻底重建虚拟环境

如果上面的方法都没解决,试试完全重置虚拟环境:

# 先退出当前虚拟环境
exit
# 删除现有的虚拟环境
pipenv --rm
# 删除旧的Pipfile.lock
rm Pipfile.lock
# 重新创建虚拟环境并安装依赖
pipenv install

注意如果你的Pipfile里没指定精确版本,可能会安装最新的包,这时候建议给关键包加上版本限制(比如Flask==2.0.2),避免自动升级到不兼容的版本。

内容的提问来源于stack exchange,提问作者Willfrans Varón Sáenz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:44:06