Я получил ошибку, когда попытался развернуть свое приложение django на vercel
Я собираю свое приложение на django, со всеми зависимостями, указанными в файле "requirements.txt"
Я не создавал окружение на vercel для развертывания, потому что я видел учебник, где человек не делал этого. У меня есть буксировочные файлы под названием: build_files.sh и vercel.json
build_files.sh:
pip install -r requirements.txt
python3 manage.py collectstatic --noinput
vercel.json:
{
"version": 2,
"builds": [
{
"src": "gestor_backend/wsgi.py",
"use": "@vercel/python",
"config": {
"maxLambdaSize": "15mb",
"runtime": "python3.8"
}
},
{
"src": "build_files.sh",
"use": "@vercel/static-build",
"config": {
"distDir": "staticfiles"
}
}
],
"routes": [
{
"src": "/static/(.*)",
"dest": "/static/$1"
},
{
"src": "/(.*)",
"dest": "gestor_backend/wsgi.py"
}
]
}
requirements.txt:
asgiref==3.7.2
backports.zoneinfo==0.2.1
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
cryptography==42.0.5
defusedxml==0.8.0rc2
Django==4.2
django-cors-headers==4.3.1
django-templated-mail==1.1.1
djangorestframework==3.14.0
djangorestframework-simplejwt==5.3.1
djoser==2.2.2
idna==3.6
mysqlclient==2.2.4
oauthlib==3.2.2
pycparser==2.21
PyJWT==2.8.0
python3-openid==3.2.0
pytz==2023.3.post1
requests==2.31.0
requests-oauthlib==1.3.1
social-auth-app-django==5.4.0
social-auth-core==4.5.3
sqlparse==0.4.4
typing_extensions==4.9.0
tzdata==2023.4
urllib3==2.2.1
вот и вся ошибка
Настройка развертывания на Github Actions с помощью requirements.txt
.
name: SportsWarehouse
run-name: ${{ github.actor }} pushed
on: [push]
jobs:
run-nba-database-test:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: P@55W0RD
MYSQL_DATABASE: test_db #nba_stats
MYSQLCLIENT_LDFLAGS: $(pkg-config --libs mysqlclient)
MYSQLCLIENT_CFLAGS: $(pkg-config --cflags mysqlclient)
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- uses: actions/checkout@v4
name: Checkout
- name: Set up Python-3.9
uses: actions/setup-python@v2
with:
python-version: '3.9'
architecture: 'x64'
- name: Cache Pip Install
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
restore-keys:
${{ runner.os }}-pip-
- name: Pip Install
run: |
python3 -m pip install mysqlclient && python3 -m pip install -r requirements.txt
- name: NBA Database Test
run: |
cd Test/
pytest -v -s test.py || echo
И файл требований:
mysql-connector-python
bs4
pymysql
pytest
cryptography
##
asgiref==3.7.2
backports.zoneinfo==0.2.1
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
cryptography==42.0.5
defusedxml==0.8.0rc2
Django==4.2
django-cors-headers==4.3.1
django-templated-mail==1.1.1
djangorestframework==3.14.0
djangorestframework-simplejwt==5.3.1
djoser==2.2.2
idna==3.6
mysqlclient==2.2.4
oauthlib==3.2.2
pycparser==2.21
PyJWT==2.8.0
python3-openid==3.2.0
pytz==2023.3.post1
requests==2.31.0
requests-oauthlib==1.3.1
social-auth-app-django==5.4.0
social-auth-core==4.5.3
sqlparse==0.4.4
typing_extensions==4.9.0
tzdata==2023.4
urllib3==2.2.1
Из вашего stderr
вывода:
File "<string>", line 49, in get_config_posix
File "<string>", line 28, in find_package_name
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
[end of output]
Вы видите, что имя pkg-config
не найдено, и он предлагает вам установить эти переменные окружения вручную. Скорее всего, это и есть основная причина того, что mysqlclient
не собирается/находится.
В main.yml
файле Github Actions вы можете увидеть, что я экспортирую их как переменные окружения.