ModuleNotFoundError:没有名为“ onbytes”的模块

时间:2019-12-19 07:21:26

标签: django python-3.x gunicorn

我有一个我创建的Django应用,正在尝试将其部署到Google Cloud Platform上。运行gcloud app deploy后尝试转到给定的链接时,出现502 Bad Gateway错误。查看日志,我看到此错误:

gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

我进行了查找,并从this stackoverflow帖子中,我尝试在本地运行以下命令:

gunicorn --log-file=- onbytes.wsgi:application

但是,我得到了错误:

ModuleNotFoundError: No module named 'onbytes'

当我在google上查找此内容时,没有任何反应。我尝试运行pip3 install onbytes,但无法产生任何结果。有人知道怎么回事吗?

2 个答案:

答案 0 :(得分:0)

日志中的另一条错误消息略高于我正在查看的错误消息:

ModuleNotFoundError: No module named 'corsheaders'

通过以下命令安装corsheaders后,我可以使它工作:

pip install django-cors-headers

,然后将其添加到requirements.txt

pip freeze > requirements.txt

答案 1 :(得分:0)

虽然是个老问题。 但是,错误似乎是指定了 onbytes 而不是您的项目名称。 像这样。

gunicorn --log-file=- yourprojectname.wsgi:application

这是因为,默认情况下,wsgi.py 文件位于具有您的项目名称的文件夹下,而应用程序是该文件中设置的变量 - 主要类似于:

import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yourprojectname.settings')
application = get_wsgi_application()