2015-07-13 80 views
1

我想用gunicorn运行我的django项目,但出现错误。 为了测试我创造了一切,通过运行以下命令新:Gunicorn不会与WSGI运行Django

virtualenv test_gunicorn 
source test_gunicorn/bin/activate 
pip install django gunicorn 
cd test_gunicorn/ 
mkdir projects 
cd projects/ 
django-admin startproject test_gunicorn 
cd test_gunicorn/ 
gunicorn test_gunicorn/wsgi:application 

,但仍然得到了我和我原来的项目,恰好有同样的错误。下面是错误:

[2015-07-13 14:22:33 +0000] [9122] [INFO] Starting gunicorn 19.3.0 
[2015-07-13 14:22:33 +0000] [9122] [INFO] Listening at: http://127.0.0.1:8000 (9122) 
[2015-07-13 14:22:33 +0000] [9122] [INFO] Using worker: sync 
[2015-07-13 14:22:33 +0000] [9127] [INFO] Booting worker with pid: 9127 
[2015-07-13 14:22:33 +0000] [9127] [ERROR] Exception in worker process: 
Traceback (most recent call last): 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 507, in spawn_worker 
    worker.init_process() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 118, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/util.py", line 355, in import_app 
    __import__(module) 
ImportError: Import by filename is not supported. 
Traceback (most recent call last): 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 507, in spawn_worker 
    worker.init_process() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 118, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/util.py", line 355, in import_app 
    __import__(module) 
ImportError: Import by filename is not supported. 
[2015-07-13 14:22:33 +0000] [9127] [INFO] Worker exiting (pid: 9127) 
Traceback (most recent call last): 
    File "/home/tahir/official/virtualenvs/test_gunicorn/bin/gunicorn", line 11, in <module> 
    sys.exit(run()) 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run 
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 189, in run 
    super(Application, self).run() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 72, in run 
    Arbiter(self).run() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 174, in run 
    self.manage_workers() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 477, in manage_workers 
    self.spawn_workers() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 541, in spawn_workers 
    time.sleep(0.1 * random.random()) 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 214, in handle_chld 
    self.reap_workers() 
    File "/home/tahir/official/virtualenvs/test_gunicorn/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 459, in reap_workers 
    raise HaltServer(reason, self.WORKER_BOOT_ERROR) 
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3> 

这里是pip freeze输出:

Django==1.8.3 
gunicorn==19.3.0 

上午我在这里做得不对或有一些问题和Django或gunicorn?

回答

5

错误是告诉你你传递的是文件路径而不是Python模块路径。你gunicorn调用应该是:

gunicorn test_gunicorn.wsgi:application 
1

你应该开始gunicorn为gunicorn test_gunicorn.wsgi:application(注意点,而不是test_gunicornwsgi之间的斜线)。基本上,语法与在Python中编写import语句相同。