如何让PythonAnywhere上的Web应用适配新项目文件?
解决PythonAnywhere部署Flask应用的ModuleNotFoundError问题
核心问题
错误日志明确指出:ModuleNotFoundError: No module named 'flask_app',根源是你的WSGI配置文件仍在尝试导入已删除的flask_app.py中的Flask实例,而你现在使用的是backend.py。
具体修复步骤
修改WSGI配置文件
打开/var/www/stagesetupapp_pythonanywhere_com_wsgi.py文件,找到第16行的导入语句:from flask_app import app as application # noqa将其替换为指向你的
backend.py的导入:from backend import app as application # noqa同时确认文件顶部的路径配置正确,确保
backend.py所在目录被添加到Python路径中,比如:import sys # 替换为你的backend.py所在的实际目录 path = '/home/stagesetupapp/mysite' if path not in sys.path: sys.path.append(path)确认backend.py的Flask实例名称
检查你的backend.py文件,确保里面创建的Flask实例变量名为app(与WSGI文件中导入的名称一致),代码类似:from flask import Flask app = Flask(__name__) # 你的路由和其他代码...重载Web应用
回到PythonAnywhere的Web控制台页面,点击顶部的「重载」按钮,让服务器加载修改后的配置和代码。
额外排查点
- 如果
backend.py依赖第三方库,需要在PythonAnywhere对应的Python环境中安装这些依赖,可通过Bash控制台执行:pip install -r requirements.txt - 确认
backend.py的文件权限为可读(默认情况下上传的文件权限是符合要求的,若有异常可通过chmod 644 backend.py调整)。
内容的提问来源于stack exchange,提问作者Knight0Light
相关产品推荐
相关产品推荐

