You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PythonAnywhere部署Flask应用时WSGI配置报错:找不到'app'模块

解决PythonAnywhere上Flask应用的ModuleNotFoundError问题

看起来你遇到的问题核心是WSGI配置里的模块引用和实际项目文件不匹配,我来帮你一步步排查解决:

1. 修正WSGI配置的导入语句

你当前的WSGI配置里注释掉的导入是from app import app as application,但从你提到的截图来看,你的应用主文件是server.py而不是app.py——这就是为什么会出现ModuleNotFoundError: No module named 'app'的直接原因。

把WSGI配置里的导入语句改成:

from server import app as application # noqa

2. 确认路径配置的正确性

检查你设置的path = '/home/azanbade/path/to/Word-finder'是否准确指向你的项目根目录(也就是包含server.py的那个文件夹)。你可以在PythonAnywhere的控制台里执行以下命令验证:

ls /home/azanbade/path/to/Word-finder

如果输出里能看到server.py,说明路径是对的;如果看不到,就需要调整路径到正确的文件夹。

3. 确保项目结构符合Python模块规范

在你的项目根目录下创建一个空的__init__.py文件(可以通过PythonAnywhere控制台执行touch /home/azanbade/path/to/Word-finder/__init__.py来创建),这样Python才会把这个目录识别为可导入的模块。

另外要确认server.py里确实定义了Flask应用实例,比如类似这样的代码:

from flask import Flask
app = Flask(__name__)

# 你的路由和其他业务代码...

if __name__ == '__main__':
    app.run(debug=True)

4. 避免启动开发服务器的冲突

一定要确保server.py里的app.run()只在本地开发时运行,也就是用if __name__ == '__main__':包裹起来。如果直接写app.run()没有这个判断,PythonAnywhere的WSGI进程会尝试启动Flask的开发服务器,导致配置失效。

修改后的完整WSGI配置示例:

import sys
# 确保这个路径是你的项目根目录(包含server.py的文件夹)
path = '/home/azanbade/path/to/Word-finder'
if path not in sys.path:
    sys.path.append(path)

# 从你的主文件server中导入Flask应用实例
from server import app as application # noqa

做完这些修改后,重启PythonAnywhere上的Web应用,应该就能解决模块找不到的问题了。

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

火山引擎 最新活动