Django 部署 - 没有 Web 进程

Posted

技术标签:

【中文标题】Django 部署 - 没有 Web 进程【英文标题】:Django Deployment - No web processes 【发布时间】:2021-04-30 21:45:52 【问题描述】:

我使用 Django 3.1.5 创建了一个应用程序,但由于某种原因,它没有正确部署。我会分享我所做的并拥有它。

我已经设置了我的 Procfile 并且有我的 requirements.txt,我按照网站上的说明进行了部署,但仍然出现错误。

computer setting image and Procfile

在我的 settings.py 我有这个:

# on the top of the file
import django_heroku

# on the bottom of the file
STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_DIRS = [
    os.path.join(BASE_DIR, 'todo/static')
]

LOGIN_URL = '/login'

# Activate Django-Heroku.
django_heroku.settings(locals())

过程文件

web: gunicorn todowoo.wsgi

完成部署后出现此错误

应用程序错误 应用程序发生错误,无法提供您的页面。如果您是应用程序所有者,请查看您的日志以获取详细信息。 heroku 日志 --tail 了解详情

以下是详细信息:

2021-01-27T03:16:07.704192+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=djangotodowoo.herokuapp.com request_id=babd8359-3dfe-4df9-8ce6-5243de91b159 fwd="66.31.116.154" dyno= 
connect= service= status=503 bytes= protocol=https
2021-01-27T03:16:07.912002+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=djangotodowoo.herokuapp.com request_id=4114d73f-f15f-4d35-9c1b-e25225a36bde fwd="66.31.116.154" dyno= connect= service= status=503 bytes= protocol=https
2021-01-27T03:16:10.630599+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=djangotodowoo.herokuapp.com request_id=9426a4a1-061f-41b6-a9a0-46190b752b60 fwd="66.31.116.154" dyno= 
connect= service= status=503 bytes= protocol=https
2021-01-27T03:16:10.760576+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=djangotodowoo.herokuapp.com request_id=cb4c8412-eaa2-482a-9daa-e5126f2a89e3 fwd="66.31.116.154" dyno= connect= service= status=503 bytes= protocol=https
2021-01-27T03:16:11.398016+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=djangotodowoo.herokuapp.com request_id=8f025699-e7b8-4ca8-9795-36ad7754ef9f fwd="66.31.116.154" dyno= 
connect= service= status=503 bytes= protocol=https
2021-01-27T03:16:11.548669+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=djangotodowoo.herokuapp.com request_id=d1c4ed4e-bbf6-43ff-88d0-2788f268fbe3 fwd="66.31.116.154" dyno= connect= service= status=503 bytes= protocol=https
2021-01-27T03:18:44.000000+00:00 app[api]: Build started by user lenilunderman@gmail.com
2021-01-27T03:19:12.176886+00:00 app[api]: Release v6 created by user lenilunderman@gmail.com
2021-01-27T03:19:12.176886+00:00 app[api]: Deploy 6caa0271 by user lenilunderman@gmail.com
2021-01-27T03:19:22.000000+00:00 app[api]: Build succeeded

我尝试运行 heroku ps:scale web=1 并得到了这个:

Scaling dynos... !
 !    Couldn't find that process type (web).

知道如何解决这个问题吗?谢谢。

【问题讨论】:

【参考方案1】:

我最近遇到了类似的情况。我按照这些命令成功地将 django 应用程序部署到 heroku 中

首先确保您拥有requirements.txtProcfile

Procfile里面的内容是这样的

web: python manage.py runserver 0.0.0.0:$PORT

运行python manage.py collectstatic 只是为了确保collectstatic 没有错误

然后cmd中的这些命令

heroku 登录

然后从浏览器登录

git 初始化

heroku git:remote -a app_name

git 添加。

git commit -am "第一次提交"

git push heroku main

heroku 运行 python manage.py 迁移

heroku 打开

【讨论】:

github.com/heroku/python-getting-started。从一开始就按照此链接中的说明进行操作 非常感谢!我能够部署。我听从了你的指示,它奏效了。我的主要问题是 Procfile 的位置,而不是 root,我将它添加到项目本身。在我把它移到正确的位置后,一切都很顺利。 好的。我应该提到Procfile的位置 我注意到我的 django 管理员在本地工作,但不是远程工作。我是否必须在本地创建一个新管理员并再次推送代码?我可以在线创建用户,但目前不存在管理员。知道可能是什么吗? 我能够解决这个问题,我只需要在 heroku 上创建一个新的超级用户。 heroku run python manage.py createsuperuser

以上是关于Django 部署 - 没有 Web 进程的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 中没有运行 Django 的 Web 进程

一、IIS下部署Django

django runserver部署和uwsgi部署的区别

django 在 heroku 上部署单独的 web 和 api 端点

Supervisor守护进程虚拟环境部署Django

heroku desc部署错误=“没有运行Web进程”