【问题标题】:Error while pushing to Heroku: requested runtime is not available for this stack推送到 Heroku 时出错:请求的运行时不适用于此堆栈
【发布时间】:2019-07-17 04:21:30
【问题描述】:

在 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 文件位于同一文件夹中。

【问题讨论】:

标签: python heroku


【解决方案1】:

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

有关指定运行时的信息,请参阅this page of the documentation。默认情况下,它使用 Python 3.6.8,所以如果你想要 3.7.2,你需要在应用程序的根目录中创建一个名为 runtime.txt 的文件,其中写入 python-3.7.2

【讨论】:

  • 我知道一开始可以为虚拟环境指定python版本,但我可以改变它吗?
  • 什么意思?将 Python 版本更改为 3.7.1?
  • 如果您想更改您的虚拟环境使用的 Python 版本,您可以查看this question,我认为它可以描述您的问题。
【解决方案2】:

检查您当前的 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】:

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

    # Runtime.txt
    python-3.8.5
    

    我删除了#Runtime.txt 行,它成功了! 该应用程序将假定您没有安装 python 版本并为您安装正确的版本。它是一个自动过程

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

    【讨论】:

      【解决方案4】:

      只需在您的 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

      【讨论】:

        猜你喜欢
        • 2021-01-10
        • 1970-01-01
        • 2019-09-13
        • 1970-01-01
        • 2021-12-12
        • 1970-01-01
        • 2017-07-14
        • 1970-01-01
        相关资源
        最近更新 更多