Vercel部署Django项目遇500错误:无法导入backend.settings模块
问题现象
我用Django作为React项目的后端,项目根目录分为backend(存放Django文件)和frontends(存放React文件)两个文件夹,已添加requirements.txt和vercel.json配置文件,也将Vercel域名加入了Django的允许访问列表。但通过GitHub部署到Vercel后,部署流程完成,访问网站时却出现500 INTERNAL_SERVER_ERROR,提示FUNCTION_INVOCATION_FAILED。查看Vercel运行时日志,反复出现以下错误:
[ERROR] Runtime.ImportModuleError: Unable to import module 'vc__handler__python': No module named 'backend.settings' Traceback (most recent call last):
确定该问题并非requirements.txt依赖缺失导致,而是settings.py的导入路径错误,即便在vercel.json中指定了正确的wsgi.py路径,依然报错。
相关配置文件
requirements.txt
asgiref==3.6.0 Django==4.2 djangorestframework==3.14.0 python-dotenv==1.0.0 pytz==2023.3 sqlparse==0.4.3 tzdata==2023.3
vercel.json
{ "builds": [{ "src": "backend/backend/wsgi.py", "use": "@vercel/python", "config": { "maxLambdaSize": "15mb", "runtime": "python3.9" } }], "routes": [ { "src": "/(.*)", "dest": "backend/backend/wsgi.py" } ] }
wsgi.py
import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "backend.settings") application = get_wsgi_application() app = application
解决方法
无需将后端和前端分开存放,把Django文件和React文件合并到项目根目录,同时修改vercel.json对应配置即可。调整后项目在Vercel上可正常运行无报错。
内容的提问来源于stack exchange,提问作者Shagnik Paul
相关产品推荐
相关产品推荐

