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

Apache重启后Flask项目wsgi报错cannot import name 'app'如何解决

解决方案

1. 补全内层WebApp包配置

你提到已存在的__init__.py位于website子目录下,而导入语句引用的内层WebApp目录本身缺少__init__.py文件,Python无法将该目录识别为可导入的包,这是核心问题。你可以二选一处理:

  • 在内层/var/www/WebApp/WebApp/目录下新建__init__.py文件,添加如下内容:
from .app import app
  • 直接调整wsgi文件的导入路径,见步骤3。

2. 校验mod_wsgi Python版本匹配

重启服务后突发报错,大概率是mod_wsgi绑定的Python版本与项目依赖版本不一致:

  • 执行dpkg -l | grep libapache2-mod-wsgi查看绑定版本,输出带python3前缀为Python3,带python前缀为Python2
  • 安装匹配项目对应版本的mod_wsgi:Python3环境执行sudo apt install libapache2-mod-wsgi-py3,Python2环境执行sudo apt install libapache2-mod-wsgi
  • 重启Apache服务:sudo systemctl restart apache2

3. 调整wsgi导入配置

如果不想修改包配置,直接修改webapp.wsgi内容为:

#!/usr/bin/python3
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, "/var/www/WebApp/WebApp")

from app import app as application

直接将sys.path指向存放app.py的内层目录,可正常导入app实例。

4. 校验目录权限

确认Apache运行用户对项目目录有访问权限:

sudo chown -R www-data:www-data /var/www/WebApp
sudo chmod -R 755 /var/www/WebApp

修改后重启Apache验证即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:54:05