我有一个我创建的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
,但无法产生任何结果。有人知道怎么回事吗?
答案 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()