Ошибка при развертывании проекта django на heruku
Я пытаюсь перенести проект django в heroku, но получаю эту ошибку.
ERROR: Command errored out with exit status 1: /app/.heroku/python/bin/python /app/.heroku/python/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp5mrz1adn Проверьте журналы для полного вывода команды. ! Push rejected, failed to compile Python app. ! Push failed
Это весь журнал
в моем runtime.txt указана версия python 3.8.12, которая поддерживается heroku.
Пожалуйста, подскажите мне, что я должен сделать, чтобы устранить эту ошибку.
После внимательного чтения лог-файла, вот что я рекомендую сделать для чистого развертывания.
Пока venv активирован и вы находитесь в директории проекта (где живут manage.py
), сделайте следующее:
- Откройте файл requirements.txt
- Удалите ненужные модули из файла requirements.txt
- Удалите ненужные модули с помощью
pip uninstall module
- Теперь запустите
pip freeze requirements.txt
- Деактивируйте venv
- Затем добавьте
requirements.txt
в контроль исходного кодаgit add -A
- Зафиксируйте свои изменения
git commit -m "deleted unneeded modules"
.
- Если у вас уже существует приложение Heroku, подключитесь к нему с помощью кнопки
heroku git:remote -a myapp
, иначе пропустите этот шаг - Развертывание,
git push heroku master
Если вы не знаете, какие модули нужны вашему проекту, и я не могу точно определить требования проекта, но если у вас базовый проект, вам нужно только 3 модуля, а именно Django
, psycopg2-binary
, gunicorn
, поэтому сделайте следующее для чистого развертывания:
- Удалить venv
- Вне каталога проекта, создайте новый
- Активируйте venv
- Установите необходимые модули, вероятно
Django
,psycopg2-binary
,gunicorn
- Теперь запустите
pip freeze requirements.txt
.
- Деактивировать venv
- Затем добавьте
requirements.txt
в контроль исходного кодаgit add -A
- Зафиксируйте свои изменения
git commit -m "deleted unneeded modules"
.
- Если у вас уже есть приложение Heroku, подключитесь к нему с помощью кнопки
heroku git:remote -a myapp
, иначе пропустите этот шаг - Развернуть,
git push heroku master