推送到Heroku时出错:请求的运行时不适用于此堆栈

时间:2019-02-23 02:59:55

标签: python django heroku virtualenv

在Heroku中创建存储库后,我想将项目从master分支推送到我的heroku存储库。

第一次尝试时,我收到以下错误消息:

  

此应用无法检测到默认语言

搜索后,我使用了以下命令:

heroku buildpacks:set heroku/python

现在它给了我这个错误信息:

  

应用程序与buildpack不兼容:   https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/python.tgz

因此,现在我从头开始尝试了所有操作,它给了我以下错误:

  

检测到Python应用

     

请求的运行时(“ python-3.7.1”)不是   可用于此堆栈(heroku-18)。

我被困在这里。

我确实有一个满足所有要求的requirements.txt,并且在我的runtime.txt文件的同一文件夹中有一个manage.py

4 个答案:

答案 0 :(得分:1)

Heroku根据supported runtimes上的文档,不支持Python 3.7.1。如果需要Python 3.7,则将Python版本更改为3.7.2,否则,将其更改为3.6.8。

有关指定运行时的信息,请参见this page of the documentation。默认情况下,它对Python使用3.6.8,因此,如果要使用3.7.2,则需要在应用程序的根目录中创建一个名为 def complete[T](status: StatusCode, value: T, marshaller: Marshaller[T, RequestEntity]) = RouteAdapter { D.complete(ToResponseMarshallable(value)(fromToEntityMarshaller(status.asScala)(marshaller))) } 的文件,并在其中写入runtime.txt

答案 1 :(得分:1)

只需在推送代码的同时升级您的 runtime.txt 文件中的版本。 堆栈中官方支持的python版本列表-

  • python-3.9.4
  • python-3.8.9
  • python-3.7.10
  • python-3.6.13

欲了解更多详情,请查看 - https://devcenter.heroku.com/articles/python-support#supported-runtimes

答案 2 :(得分:0)

检查您当前的Python版本:

C:\Python --version

假设:

Python 3.8.5

现在转到 runtime.txt 并指定您的Python版本:

语法: python-<version>


示例

python-3.8.5正确

Python-3.8.5不正确

Python 3.8.5不正确

答案 3 :(得分:0)

就我而言,我的Runtime.txt是:

# Runtime.txt
python-3.8.5

我删除了#Runtime.txt行,而且行得通!

此外,您应该在推送之前提交更改。