Django ModuleNotFoundError в производстве Vercel
Я пытаюсь развернуть api на vercel в Django, однако, когда я вызываю свой api, я получаю ошибку, что модуль не существует. Локально я такой ошибки не получаю.
Я пробовал несколько решений: добавление маршрута к папке в settings.py, установка модулей с помощью build_files.sh. У меня все та же проблема, несмотря на то, что файлы присутствуют в абордаже моего производственного проекта.
Вот ссылка на мой репозиторий на github: https://github.com/SkyBLUE62/osint_sherlock_api
vercel.json
{
"version": 2,
"builds": [
{
"src": "api/wsgi.py",
"use": "@vercel/python",
"config": { "maxLambdaSize": "15mb", "runtime": "python3.9" }
}
],
"routes": [
{
"src": "/static/(.*)",
"dest": "/static/$1"
},
{
"src": "/(.*)",
"dest": "api/wsgi.py"
}
]
}
build_files.sh
echo "BUILD START"
# create a virtual environment named 'venv' if it doesn't already exist
python3.9 -m venv venv
# activate the virtual environment
source venv/bin/activate
# install all deps in the venv
pip install -r requirements.txt
# collect static files using the Python interpreter from venv
python manage.py collectstatic --noinput
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
echo "BUILD END"
# [optional] Start the application here
# python manage.py runserver
api/settings.py
api/wsgi.py
"""
WSGI config for api project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api.settings')
application = get_wsgi_application()
app = get_wsgi_application()
Дерево проектов в Prod
requirements.txt
djangorestframework>=3.12.2
django-cors-headers>=3.6.0
sherlock-project==0.15.0
Настройте Postman или ThunderClient для вызова api