部署Django应用到Vercel报错:wsgi.py缺少handler或app变量
Django部署Vercel报错:Missing variable
handler or app in wsgi.py的解决方法 问题核心原因
Vercel的Python运行时要求WSGI入口文件必须明确暴露handler或app变量,而默认的Django wsgi.py仅导出了application,因此触发该报错。
具体解决步骤
修改wsgi.py文件
打开qr_project/wsgi.py,在末尾添加handler = application,让Vercel能识别到指定的WSGI handler。完整示例代码:import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'qr_project.settings') application = get_wsgi_application() handler = application # 新增这行,供Vercel识别配置vercel.json
如果项目根目录没有vercel.json,新建一个,指定WSGI入口和路由规则:{ "builds": [ { "src": "qr_project/wsgi.py", "use": "@vercel/python" } ], "routes": [ { "src": "/(.*)", "dest": "qr_project/wsgi.py" } ] }检查依赖与Python版本
- 确保
requirements.txt包含Django及项目所需所有依赖,示例:Django>=4.2,<5.0 - 可选:在项目根目录创建
runtime.txt,指定和本地一致的Python版本,避免兼容问题,示例:python-3.10
- 确保
内容的提问来源于stack exchange,提问作者mustafa candan
相关产品推荐
相关产品推荐

