Heroku/Django - Не удалось обнаружить язык по умолчанию для этого приложения
Я впервые пытаюсь развернуть приложение Django через Heroku.
Когда я запускаю git push heroku master
, он возвращает эту ошибку:
remote: -----> Building on the Heroku-20 stack
remote: -----> Determining which buildpack to use for this app
remote: ! No default language could be detected for this app.
remote: HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
remote:
remote: ! Push failed
remote: !
remote: ! ## Warning - The same version of this code has already been built: e6acd22b123b939729546f4f06f368a8855a4744
remote: !
remote: ! We have detected that you have triggered a build from source code with version e6acd22b123b939729546f4f06f368a8855a4744
remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote: !
remote: ! If you are developing on a branch and deploying via git you must run:
remote: !
remote: ! git push heroku <branchname>:main
remote: !
remote: ! This article goes into details on the behavior:
remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to vygrapp.
remote:
To https://git.heroku.com/vygrapp.git
! [remote rejected] master -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/vygrapp.git'
После аналогичных проблем на SO я полагаю, что у меня правильно настроена файловая структура - git развернут из того же места, что и Procfile и т.д. У меня также есть файл requirements.txt, который, как я полагаю, сообщает Heroku, что это приложение на python - так что я не могу понять, почему buildpack не работает.
Heroku ищет ваши Procfile
, requirements.txt
и runtime.txt
только в корневом каталоге вашего проекта. Переместите их на уровень выше, чтобы они находились рядом с вашими .gitattributes
.
Это должно позволить Heroku определить, что это проект Python и преодолеть текущую ошибку.
Но ваш проект все равно не запустится. Из коробки, Heroku ожидает, что ваш проект Django будет also находиться в корневом каталоге вашего репозитория. Возможно, вы сможете заставить его работать из подкаталога, поиграв с переменной окружения DJANGO_SETTINGS_MODULE
и / или PYTHONPATH
, но самое простое решение - переместить весь ваш проект на каталог выше.
Я предлагаю вам переместить все из anybody/anybody1/
в anybody/
, затем удалить пустой каталог anybody/anybody1/
.
Затем зафиксировать и переразвернуть.