如何将Flask项目上传至PythonAnywhere并解决部署报错问题
Flask部署到PythonAnywhere踩坑解决
能不能上传整个项目?
完全可以上传整个项目,报错不是因为上传了整个项目,大概率是路径配置不匹配或者WSGI文件没改对,和上传方式无关。
必须上传的文件/文件夹
- Flask主程序文件:比如
app.py或者VS生成的wsgi.py,核心是里面要有Flask实例(一般叫app) templates文件夹:所有HTML模板都在这里,不传的话页面会找不到模板static文件夹:里面的css、js、图片等静态资源必须传,不然网页样式、交互全失效requirements.txt:本地用pip freeze > requirements.txt生成,用来让PythonAnywhere安装项目依赖,没这个会缺包报错- 业务相关文件:比如你自己写的Python模块、配置用的txt文件,只要项目用到了就必须传
可以忽略的文件/文件夹
- 本地虚拟环境:比如
venv/env文件夹,PythonAnywhere有自己的环境,传了也没用 - IDE配置文件:
.vscode/.idea这类,属于本地开发配置,服务器不需要 - 缓存文件:
__pycache__、.pyc,本地自动生成的,服务器会自己重新生成 - 本地日志:比如
.log文件,服务器会生成自己的日志,不用传
解决“Something went wrong”的关键步骤
- 改WSGI配置文件:在PythonAnywhere的Web应用设置里找到WSGI文件(路径一般是
/var/www/你的用户名_pythonanywhere_com_wsgi.py),修改成匹配你项目结构的内容,比如:
import sys # 替换成你项目在PythonAnywhere上的绝对路径 path = '/home/你的用户名/你的项目文件夹名' if path not in sys.path: sys.path.append(path) # 这里要对应你的主程序文件名和Flask实例名,比如主程序是app.py,实例是app from app import app as application
- 看错误日志:别瞎猜,直接去Web应用页面的“Error log”里看具体报错,比如找不到模块、路径错了、依赖没装,日志里写得清清楚楚
- 装依赖:上传
requirements.txt后,打开PythonAnywhere的控制台,进入项目文件夹,运行pip install -r requirements.txt --user,把依赖装到服务器环境里
内容的提问来源于stack exchange,提问作者Itrytobehelpful
相关产品推荐
相关产品推荐

