Heroku:即使使用runtime.txt,此应用程序的python也无法检测到默认语言


问题内容

我正在尝试将项目部署到heroku,并且出现此错误:-

Counting objects: 70, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (64/64), done.
Writing objects: 100% (70/70), 17.36 KiB | 0 bytes/s, done.
Total 70 (delta 23), reused 3 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
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: Verifying deploy...

如果您转到我的github项目,则我拥有heroku项目所需的所有内容,包括runtime.txt文件,但仍然出现此错误。我尝试更改Heroku支持的不同python版本,但仍然存在相同的错误。有人可以帮我吗?

如果我添加一个构建包,那么我将收到以下错误

Counting objects: 70, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (64/64), done.
Writing objects: 100% (70/70), 17.36 KiB | 0 bytes/s, done.
Total 70 (delta 23), reused 3 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Failed to detect app matching https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/python.tgz buildpack
remote:        More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:

不知道我要去哪里错了?


问题答案:

解决此问题的一种可能方法是在创建应用程序期间指定buildpack,例如:

$ heroku create myapp --buildpack heroku/python

或在创建应用后,例如:

$ heroku buildpacks:set heroku/python

推荐文档:Heroku文档

我发现的另一个问题是package.jsondjango项目中有不必要的文件和其他文件。我通过从我的应用程序目录中删除不必要的文件来解决它。
由于这些文件阻碍了buildpack的自动检测。

检测失败的另一个原因可能是您的应用的 文件夹结构错误
。在Procfile和其他Heroku的文件应该就在Git目录下的启动,否则您的应用程序将无法检测到。