我正在关注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位于项目的根目录中,包含:
web:gunicorn hepcat_server.wsgi
settings.py位于hepcat_server目录
当我使用$ python manage.py run_gunicorn
时
gunicorn成功启动,我看到默认的Django页面
答案 0 :(得分:1)
我在使用您正在使用的Heroku设置页面时遇到了同样的问题。我在this page找到了解决方案。我在这里复制了后人:
在django项目的根目录中,创建Procfile文件。 然后把它写在网上:sh -c“cd djangoproject&amp;&amp; gunicorn djangoproject.wsgi“。然后创建另一个名为.env的文件 位置,写入DJANGO_SETTINGS_MODULE = djangoproject.settings, 这将帮助您设置所需的env变量 在djangoproject.wsgi模块中设置。跑步工头开始测试。 这样做应该是自我解释的,给出下面的问题。
部署时,在heroku中创建应用程序后,设置 使用此命令调用env变量heroku config:set DJANGO_SETTINGS_MODULE = djangoproject.settings,这是因为 部署在文件djangoproject / djangoproject / wsgi.py之前失败 跑了。
请记住将“djangoproject”替换为django项目的名称。