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

AWS EC2 Ubuntu部署Flask项目执行flask run提示ImportError如何解决

Flask部署EC2 Ubuntu出现ImportError问题解决方案

报错核心诱因

该报错本质是Flask按照.flaskenv中配置的FLASK_APP=project导入应用入口时,无法成功加载对应模块,核心原因多为本地与服务器的环境差异、目录结构差异、依赖缺失或路径规则差异导致。

排查解决步骤

  • 确认项目目录结构与执行位置是否正确
    执行flask run的当前工作目录下,必须存在project.py文件,或者名为project的目录且目录内包含__init__.py文件,这是Flask识别入口的前提。可执行ls命令查看当前目录的文件列表,确认是否存在上传漏文件、目录层级错位的问题。
  • 检查Python依赖是否完整
    若本地使用虚拟环境管理依赖,服务器未安装对应依赖会直接触发导入失败。首先激活服务器上的项目虚拟环境,执行pip list查看是否已安装Flask以及项目用到的所有第三方库。如果有requirements.txt文件直接执行pip install -r requirements.txt安装全量依赖,没有的话将本地执行pip freeze导出的依赖列表传到服务器安装即可。
  • 修复导入路径的跨平台兼容问题
    Windows系统路径不区分大小写,Linux系统严格区分大小写,若代码中存在大小写不匹配的导入语句(比如实际文件名为utils.py但代码写了from Utils import xx),本地运行正常但服务器会导入失败。同时要避免使用本地绝对路径导入,全部替换为相对导入或者基于项目根目录的导入。
  • 查看详细报错信息定位问题
    flask run抛出的错误过于笼统,可直接执行入口文件触发更详细的报错:如果入口是单文件则执行python project.py,如果入口是目录则执行python project/__init__.py,根据终端输出的具体报错行、缺失的模块名称针对性处理。
  • 验证.flaskenv配置有效性
    检查.flaskenv文件的配置项是否存在多余空格,比如你给出的配置中FLASK_ENV=development 末尾存在多余空格,可能导致配置识别异常,删除所有配置项前后的多余空格后重试。也可以临时在终端直接指定环境变量测试:执行FLASK_APP=project flask run排查是否为配置文件问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:27:01