ERROR: Не удалось собрать колеса для backports.zoneinfo, которое требуется для установки проектов на основе pyproject.toml

Сборка Heroku возвращает эту ошибку, когда я пытаюсь развернуть приложение Django в течение последних нескольких дней. Код Django и структура файлов соответствуют официальной документации Django, а Procfile добавлен в корневую папку.

Log -

Спасибо.

У меня была такая же ошибка при развертывании моего приложения на heroku и проблема в том, что когда вы развертываете его на heroku, heroku по умолчанию использует python версии 3.10.x и backports.zoneinfo не работает правильно с этой версией, поэтому я предлагаю вам перейти на версию 3.8.x (stable).

Для этого вам нужно сказать heroku переключить эту версию, и это можно сделать следующим образом :

  1. Создайте runtime.txt в корневом каталоге.
  2. python-3.8.10 <- запишите это в 'runtime.txt там же укажите версию.
  3. heroku установит эту версию, и вы больше не будете получать ошибку.

PS : это сработало для меня и позже, когда heroku устранит эту ошибку, вы сможете перейти на python последней версии.

Этот тип проблем возникает, когда вы забыли изменить файл requirements.txt и сервер heroku использует настройки по умолчанию, например, он использует обновленную версию python, которая не является стабильной. Используйте следующие команды, и вы избавитесь от этой проблемы.

$ git status

необходимо изменить файл requirements.txt

$ git add-A

$ git commit -m "Python VERSION-3.8.10"

затем подтолкните ваш сервер, и я уверен, что вы избавитесь от этой проблемы. Для того чтобы подтолкнуть ваш сервер...

$ git push heroku master

Я столкнулся с такой же ошибкой при создании контейнера. Я решил эту проблему, используя точную версию моего Python venv, т.е. 3.8.9

Ранее для изображения я использовал 3.8-alpine для более легкой версии изображения. Но у меня ничего не получилось, и я получил ту же ошибку, что и вы.

Избегайте установки backports.zoneinfo при использовании python >= 3.9

Отредактируйте свой requirements.txt файл

ОТ:

backports.zoneinfo==0.2.1

TO:

backports.zoneinfo;python_version<"3.9"

ИЛИ:

backports.zoneinfo==0.2.1;python_version<"3.9"

Подробнее об этом можно прочитать здесь и здесь

Понижение версии Python с 3.10.5 до 3.9.0 помогло мне. Надеюсь, это поможет.

Установка venv с версией python3.9 помогла мне.

python3.9 версия по умолчанию в моей системе

python3.9 -m venv venv

Я столкнулся с такой же ошибкой при развертывании моего Scrapy паука на Heroku но использование python-3.9.15 в runtime.txt решило проблему. Однако, python, установленный в моем venv, был 3.8.13

вы можете попробовать один из этих вариантов Я не знаю их фактического значения, но они рекомендованы Heroku Вы можете прочитать полную документацию здесь

Supported runtimes
python-3.10.8 on all supported stacks (recommended)
python-3.9.15 on all supported stacks
python-3.8.15 on Heroku-18 and Heroku-20 only
python-3.7.15 on Heroku-18 and Heroku-20 only

Пробовал и тестировал на Mac pro:

Проверьте версию python в терминале

python3 --version

ИЛИ

python --version

Если версия python 3.9 & выше, то обновите следующую строку (backports.zoneinfo) в вашем файле "requirements.txt" до :

  • backports.zoneinfo;python_version< "3.9"

Запуск -

pip3 install -r requirements.txt

протестируйте запуск вашего приложения снова, на данном этапе оно должно работать.

для пользователей MAC:

export C_INCLUDE_PATH=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/Headers

только это помогло мне. источник здесь

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