找不到该进程类型,Heroku

Posted

技术标签:

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

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

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

可能是什么原因?

【问题讨论】:

【参考方案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,然后提交更改,然后用正确的名称再次添加它,然后再次提交:

    删除您的 procfile git 提交 添加一个名为“Procfile”的新 procfile 再次提交 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?

【讨论】:

以上是关于找不到该进程类型,Heroku的主要内容,如果未能解决你的问题,请参考以下文章

找不到模块“@storybook/react”或其相应的类型声明。在 Heroku 上

heroku node.js bash:节点:找不到命令

“找不到那个应用程序。”在控制台中运行 heroku 命令时

Django:Heroku 上的生产应用程序找不到带有“路径”urlpattern 的模板

PySFTP失败,“在部署Django / Heroku时出现”找不到主机X的主机密钥”

为啥 Heroku 找不到我的 Django 模板?