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 переключить эту версию, и это можно сделать следующим образом :
- Создайте runtime.txt в корневом каталоге.
- python-3.8.10 <- запишите это в 'runtime.txt там же укажите версию.
- 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
только это помогло мне. источник здесь