Я получил ошибку, когда попытался развернуть свое приложение 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 вы можете увидеть, что я экспортирую их как переменные окружения.

Вернуться на верх