在Heroku上为Django配置gunicorn

发布于 2021-01-29 16:21:34

我正在尝试在Heroku上设置一个测试Django项目。按照这里Heroku入门指南中的建议,我尝试使用它gunicorn代替Django开发服务器。

这是我第一次尝试Procfile:

web: gunicorn_django --workers=4 --bind=0.0.0.0:$PORT my_project/settings.py
worker: python my_project/manage.py celeryd -E -B --loglevel=INFO

这给了我这个错误:

ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named py

我决定采取不同的方法,并遵循这里的建议。现在我的Procfile看起来像这样:

web: gunicorn_django -b 0.0.0.0:\$PORT -w 9 -k gevent --max-requests 250 --preload my_project.settings

(我还更新了需求文件以包含gevent。)它给了我同样的错误:

ImportError: Could not import settings

最后,我将其设置为settings

web: gunicorn_django -b 0.0.0.0:\$PORT -w 9 -k gevent --max-requests 250 --preload settings

但是现在我得到这个错误:

Error: django project not found

我的Django项目的设置方式是该settings.py文件位于存储库的父目录中-
我在另一个目录下没有Django项目。它与virtualenv和git文件处于同一级别。那会是个问题吗?我敢肯定我在做一些简单的错误-任何帮助将不胜感激。


如果我按照Heroku的说明在此处并将Procfile更改为此:

web: gunicorn hellodjango.wsgi -b 0.0.0.0:$PORT

什么都没发生-日志中没有错误,但是没有任何程序运行,并且该应用程序似乎已经死了。

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我刚遇到同样的问题。在您从Heroku指南中复制的procfile中,将其更改hellodjango.wsgiyourproject.wsgi

    看起来我们所有人都时不时地盲目地粘贴粘贴,但是在您(和我)的防御中,似乎实际上没有打开*
    .wsgi文件,这只是您向Gunicorn发出信号的方式运行您的django项目。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看