【问题标题】:Couldn't find that process type, Heroku找不到该进程类型,Heroku
【发布时间】:2018-07-08 18:47:54
【问题描述】:

我正在尝试在 Heroku 上部署一个简单的 Python 机器人,但出现错误
couldn't find that process type

当我尝试缩放测功机时。我已经制作了一个 procfile,它看起来像这样:
web: gunicorn dep:app,其中“dep”是我的 python 代码的名称

可能是什么原因?

【问题讨论】:

    标签: python heroku


    【解决方案1】:

    您可以检查您的 python 版本。我试图部署我的 Django 项目,所以我的 procfile 看起来像这样web: gunicorn blog.wsgi --log-file -,我也遇到了同样的错误couldn't find that process type。我发现Heroku 只支持 python-3.6.4 和 python-2.7.14,而我只有 python3.5。您可以输入:

    python -V
    

    查看您现在使用的 python 版本。如果没有,您可以下载 python 3.6。我关注了这个How do I install Python 3.6 using apt-get?

    Ubuntu 14.04 和 16.04

    如果您使用的是 Ubuntu 14.04 或 16.04,您可以使用 Felix Krull 的 死蛇 PPA 在 https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa:

    sudo add-apt-repository ppa:deadsnakes/ppa

    sudo apt-get update

    sudo apt-get install python3.6

    或者,您可以在以下位置使用 J Fernyhough 的 PPA https://launchpad.net/~jonathonf/+archive/ubuntu/python-3.6:

    sudo add-apt-repository ppa:jonathonf/python-3.6

    sudo apt-get update

    sudo apt-get install python3.6

    记得给你保留 python 3.5。不要删除它。并在 runtime.txt 文件中指定您的 python 版本:python-3.6.4 并运行:

    heroku ps:scale web=1 --app [my app's name]

    问题解决了。希望我的回答能帮到你。

    【讨论】:

      【解决方案2】:

      确保 Procfile 不应有任何扩展名,如 .txt 否则这将是错误

      remote: -----> Discovering process types remote: Procfile declares types -> (none)

      在 cmd 中创建没有扩展名类型的文件 notepad Procfile. 现在添加web: gunicorn dep:app 并保存 现在当你将 git push heroku master 上面的行会像

      remote: -----> Discovering process types remote: Procfile declares types -> web

      当你运行时错误消失了

      C:\Users\Super-Singh\PycharmProjects\URLShortener>heroku ps:scale web=1

      Scaling dynos... done, now running web at 1:Free

      【讨论】:

      • 这对我有用,但是当我打开应用程序时,我仍然有“应用程序错误”,而且我还收到“与日志流断开连接。可能发生了您在此处看不到的事件!尝试重新连接...”在我的日志中。请帮忙。编辑:刚刚意识到我在 Linux 上,所以可能会有所不同
      【解决方案3】:

      如果您的 procfile 拼写错误,例如“procfile”或“ProcFile”等,可能会发生这种情况。文件名应为“Procfile”(大写 P)。

      有时更改文件名是不够的,因为 git 不会发现更改。我必须完全删除 Procfile,然后提交更改,然后用正确的名称再次添加它,然后再次提交:

      1. 删除您的 procfile
      2. git 提交
      3. 添加一个名为“Procfile”的新 procfile
      4. 再次提交
      5. git push heroku master(或main - 新的heroku 项目现在使用main

      应该可以!

      【讨论】:

      • 为了清楚起见:这个文件不应该有扩展名(没有.txt 或其他)。只是Procfile
      【解决方案4】:

      以下内容对我有用。

      根据this Heroku help page

      修复:

      使用heroku buildpacks:clear 删除现有的构建包。 您将需要添加一个空提交并重新部署以进行更改 生效:

      git commit --allow-empty -m "Adjust buildpacks on Heroku"

      git push heroku master

      【讨论】:

        【解决方案5】:

        确保 Procfile 位于存储库的根目录中。

        就我而言,我最初将 Procfile 保存在子目录中。将其移至根目录即可解决问题。

        对于尝试部署 django web 应用程序的人,请注意,上述步骤可能会导致另一个问题 - heroku 无法访问,直到 wsgi 文件驻留在子目录中。

        我参考下面的帖子解决了-

        How can I modify Procfile to run Gunicorn process in a non-standard folder on Heroku?

        【讨论】:

          猜你喜欢
          • 2017-10-16
          • 2019-10-23
          • 2020-04-08
          • 2021-03-15
          • 2021-04-03
          • 2022-08-06
          • 1970-01-01
          • 2021-05-04
          • 1970-01-01
          相关资源
          最近更新 更多