为什么用 PythonAnywhere
PythonAnywhere 提供浏览器里的 Python 环境与 Web app 托管,适合练手部署 Django/Flask,免去自己买 VPS 配 Nginx 的门槛。免费层有限制,但够跑 demo。
步骤概览
- 注册账号并打开 Bash 控制台
- 从 Git 拉取项目
- 创建并启用 virtualenv,安装依赖
- 在 Web 面板指定虚拟环境路径
- 编辑 WSGI 文件 指向 Django
application - Reload,用
https://<user>.pythonanywhere.com访问
拉代码与虚拟环境
git clone https://github.com/you/your-project.git
cd your-project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Django 项目按需 migrate、collectstatic
Web 面板里 Virtualenv 填类似:
/home/<your-username>/your-project/venv
WSGI 配置示意
import os
import sys
path = '/home/<your-username>/your-project'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
旧文使用 whitenoise 服务静态文件在部分教程里常见;Django 4+ 与 WhiteNoise 配置请以当前文档为准。生产务必设置 ALLOWED_HOSTS、关闭 DEBUG。
常见问题
| 问题 | 处理 |
|---|---|
| 500 | 看 Web 面板 error log |
| 静态 404 | collectstatic + WhiteNoise 或平台静态映射 |
| 依赖缺失 | 确认 Web 用的 venv 与 bash 里安装的是同一个 |
| 路径写错 | username、项目目录必须是绝对路径 |
小结
PythonAnywhere 把「能跑起来」变简单:核心是 venv 路径正确 + WSGI 指到 application + ALLOWED_HOSTS。这套步骤对理解后续更复杂的容器部署也有帮助。
适合与不适合
适合: 课程作业、个人 demo、低流量原型。
不适合: 强 CPU 任务、长期高流量、需要任意系统包的特殊依赖(免费层限制多)。
把第一次部署走通后,再迁移到 Railway、Fly.io、容器 + 云主机时,你会发现概念一一对应:进程入口、环境变量、静态资源、域名与 HTTPS。PythonAnywhere 是很好的「部署第一课」。