我试图在Heroku上部署一个简单的python bot,但是我收到了错误
couldn't find that process type
当我尝试缩放dynos时。我已经创建了一个procfile,它看起来像这样:
web: gunicorn dep:app
,其中" dep"是我的python代码的名称
可能是什么原因?
答案 0 :(得分:6)
如果您的procfile是拼写错误,例如“ procfile”或“ ProcFile”等,则可能会发生这种情况。文件名应为“ Procfile”(大写P)。 有时更改文件名并不足够,因为git不会发现更改。我必须完全删除Procfile,然后提交更改,然后再使用正确的名称再次添加它,然后再次提交:
应该工作!
答案 1 :(得分:5)
确保Procfile位于存储库的根目录中。
就我而言,我最初将Procfile保留在子目录中。将其移至根目录即可解决此问题。
对于尝试部署django Web应用程序的人员,请注意,上述步骤可能会导致另一个问题-heroku在位于子目录中的wsgi文件之前无法访问。
我通过参考以下线程来解决它-
How can I modify Procfile to run Gunicorn process in a non-standard folder on Heroku?
答案 2 :(得分:3)
以下内容对我有用。
要修复:
使用
heroku buildpacks:clear
删除现有的buildpack。 您将需要添加一个空的提交并重新部署以更改为 生效:
git commit --allow-empty -m "Adjust buildpacks on Heroku"
git push heroku master
答案 3 :(得分:0)
您可以检查您的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' s 死亡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]
问题解决了。我希望我的回答可以帮到你。
答案 4 :(得分:0)
确保Procfile不应该有像.txt这样的扩展名 否则这将是错误
remote: -----> Discovering process types
remote: Procfile declares types -> (none)
在cmd中创建不带扩展名类型的文件
notepad Procfile.
现在添加web: gunicorn dep:app
并保存
现在,当你将git推送到heroku master时,上面的行就像是
remote: -----> Discovering process types
remote: Procfile declares types -> web
当你运行
时错误就消失了 C:\用户\超级辛格\ PycharmProjects \ URLShortener> heroku ps:scale web=1
Scaling dynos... done, now running web at 1:Free
答案 5 :(得分:0)
此问题主要是在您尝试通过使用命令提示符或通过终端创建Procfile时引起的。我建议手动创建Procfile。
如果您使用的是Visual Studio代码,请单击pipfile,然后在上方单击“创建新文件”按钮,然后输入文件名作为Procfile。在执行此操作之前,请删除先前的Procfile,并在活动的虚拟环境中的命令提示符中使用命令git rm procfile -f。
如果您正在使用其他IDE,请打开记事本并在其中输入以下行:gunicorn mb_project.wsgi --log-file-之后,将其另存为Procfile并将该文件放在pipfile下。
的链接