我正在追踪Getting Started with Django on Heroku tutorial
当我尝试使用Foreman在Gunicorn上运行Django应用程序时,出现下一个错误回溯:

09:23:33 web.1  | started with pid 7012
09:23:34 web.1  | 2013-05-06 09:23:34 [7012] [INFO] Starting gunicorn 0.17.2
09:23:34 web.1  | 2013-05-06 09:23:34 [7012] [INFO] Listening at: `http://0.0.0.0:5000` (7012)
09:23:34 web.1  | 2013-05-06 09:23:34 [7012] [INFO] Using worker: sync
09:23:34 web.1  | 2013-05-06 09:23:34 [7015] [INFO] Booting worker with pid: 7015
09:23:34 web.1  | 2013-05-06 09:23:34 [7015] [ERROR] Exception in worker process:
09:23:34 web.1  | Traceback (most recent call last):
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker
09:23:34 web.1  |     worker.init_process()
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
09:23:34 web.1  |     self.wsgi = self.app.wsgi()
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 103, in wsgi
09:23:34 web.1  |     self.callable = self.load()
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 25, in load
09:23:34 web.1  |     return util.import_app(self.app_uri)
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/util.py", line 372, in import_app
09:23:34 web.1  |     __import__(module)
09:23:34 web.1  |   File "/Users/cosmicMan66/DjangoDev/hepcat_server/hepcat_server/wsgi.py", line 27, in <module>
09:23:34 web.1  |     from django.core.wsgi import get_wsgi_application
09:23:34 web.1  | ImportError: No module named django.core.wsgi
09:23:34 web.1  | Traceback (most recent call last):
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker
09:23:34 web.1  |     worker.init_process()
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
09:23:34 web.1  |     self.wsgi = self.app.wsgi()
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 103, in wsgi
09:23:34 web.1  |     self.callable = self.load()
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 25, in load
09:23:34 web.1  |     return util.import_app(self.app_uri)
09:23:34 web.1  |   File "/usr/local/lib/python2.7/site-packages/gunicorn/util.py", line 372, in import_app
09:23:34 web.1  |     __import__(module)
09:23:34 web.1  |   File "/Users/cosmicMan66/DjangoDev/hepcat_server/hepcat_server/wsgi.py", line 27, in <module>
09:23:34 web.1  |     from django.core.wsgi import get_wsgi_application
09:23:34 web.1  | ImportError: No module named django.core.wsgi
09:23:34 web.1  | 2013-05-06 09:23:34 [7015] [INFO] Worker exiting (pid: 7015)
09:23:35 web.1  | 2013-05-06 09:23:35 [7012] [INFO] Shutting down: Master
09:23:35 web.1  | 2013-05-06 09:23:35 [7012] [INFO] Reason: Worker failed to boot.
09:23:35 web.1  | exited with code 3
09:23:35 system | sending SIGTERM to all processes
SIGTERM received


Procfile位于项目的根目录中,并且包含:


网址:gunicorn hepcat_server.wsgi


settings.py位于hepcat_server目录中

当我使用$ python manage.py run_gunicorn
gunicorn成功启动,我看到默认的Django页面

最佳答案

跟随您使用的Heroku设置页面时,我遇到了同样的问题。我在this page上找到了解决方案。为了后代,我在这里复制了它:


在django项目的根目录中,创建Procfile文件。
然后将其写在网站上:sh -c“ cd djangoproject && gunicorn
djangoproject.wsgi”。然后在同一目录中创建另一个名为.env的文件
位置,将DJANGO_SETTINGS_MODULE = djangoproject.settings写入其中,
这将帮助您设置不能为
在djangoproject.wsgi模块中设置。运行工头开始以进行测试。
对于下面的问题,这应该是不言自明的。

部署时,在heroku中创建应用程序后,设置
使用此命令的env变量heroku config:set
DJANGO_SETTINGS_MODULE = djangoproject.settings,这是因为
部署在文件djangoproject / djangoproject / wsgi.py之前失败
运行。


记住用您的django项目的名称替换“ djangoproject”。

关于django - 尝试使用Foreman在本地Gunicorn上运行Django应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16394197/

10-15 07:28