2014-07-14 127 views
3

我從一個全新的django安裝到Python 3.4 virtualenv中。然後,我嘗試着按照教程啓動gunicorn,測試第一次運行並失敗。我有一個完全配置的開發服務器,其中gunicorn無法運行,向我展示了沒有名爲<django project name>.wsgi的模塊的錯誤。Django Gunicorn:無法找到應用程序

(test_projectprodenv)[email protected]:~$ gunicorn test_project.wsgi:application --bind 162.243.195.141:8001 
Exception in worker process: 
Traceback (most recent call last): 
    File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/arbiter.py", line 502, in spawn_worker 
    worker.init_process() 
    File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/workers/base.py", line 114, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/app/base.py", line 66, in wsgi 
    self.callable = self.load() 
    File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/home/djangouser/test_projectprodenv/lib/python3.4/site-packages/gunicorn/util.py", line 356, in import_app 
    __import__(module) 
ImportError: No module named 'test_project.wsgi' 

唯一的原因,我開始了新的服務器來測試這個新的Django項目是在gunicorn將努力想着也許我有我的老dev的服務器配置錯誤的東西的希望。請記住,這是全新的。除了配置數據庫之外,我沒有在Django項目文件夾或settings.py中觸及任何內容。

編輯:增加了文件結構。

(test_projectprodenv)[email protected]:~$ ls 
test_project test_projectprodenv 

(test_projectprodenv)djan[email protected]:~/test_project$ tree 
. 
├── test_project 
│   ├── __init__.py 
│   ├── __pycache__ 
│   │   ├── __init__.cpython-34.pyc 
│   │   ├── settings.cpython-34.pyc 
│   │   ├── urls.cpython-34.pyc 
│   │   └── wsgi.cpython-34.pyc 
│   ├── settings.py 
│   ├── urls.py 
│   └── wsgi.py 
└── manage.py 

2 directories, 9 files 

正在從test_project文件夾執行gunicorn命令。

(test_projectprodenv)[email protected]:~$ which gunicorn 
/home/djangouser/test_projectprodenv/bin/gunicorn 
+0

似乎是一個路徑問題。你可以請你發佈你的目錄結構,以及上面運行命令的文件夾嗎? –

+0

@SohanJain對不起,我添加了它。我在virtualenv中安裝了gunicorn,所以我在啓動virtualenv時執行gunicorn命令。 – user1757703

+3

您發佈的stacktrace表明您正在從您的home文件夾運行gunicorn,您需要從/ home/djangouser/test_project運行它 –

回答

10

如果您的應用程序沒有安裝在與Gunicorn沿Python環境,你必須將其添加到Python的路徑上,使Gunicorn可以看到,無論是從哪裏包位於運行或指定該位置通過--pythonpath STRING命令行選項。

所以,無論是從~/test_project啓動服務器:

~/test_project$ gunicorn test_project.wsgi:application --bind 162.243.195.141:8001 

或從你的主目錄--pythonpath選項:

~$ gunicorn test_project.wsgi:application --pythonpath test_project --bind 162.243.195.141:8001 
+0

太棒了。 '--pythonpath'選項和你的解釋對我非常有幫助。謝謝 :) – user1757703

相關問題