找不到该进程类型,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 命令时
Django:Heroku 上的生产应用程序找不到带有“路径”urlpattern 的模板