如何使用Gunicorn / WSGI webserver运行Django应用程序?

时间:2016-11-28 05:38:50

标签: django wsgi gunicorn django-cache-machine

我现有的Django应用程序在我的MacBook上本地运行。它的目录结构如下所示:

myproject/
    mySite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    myApp1/
        __init__.py
        models.py
        views.py
    manage.py
    requirements.txt

到目前为止,我一直在使用Django玩具网络服务器来运行我的应用程序:./manage.py runserver 0.0.0.0:8000。但现在我想使用gunicorn代替。所以我按照说明here

我做source myVirtualenv/bin/activate && cd myproject && gunicorn mySite.wsgi。我收到以下错误:

  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "myproject/MyApp2/models.py", line 11, in <module>
    from caching.base import CachingManager, CachingMixin
ImportError: No module named caching.base

当我从同一位置运行./manage.py runserver 0.0.0.0:8000时,它的效果非常好。

为什么呢?难道我做错了什么? Django-Cache-Machine不能与Gunicorn / WSGI一起使用吗?如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

要使用gunicorn运行项目,请尝试以下操作:

  1. 激活你的virtualenv
  2. 转到您项目的目录
  3. 运行gunicorn mySite.wsgi:application --bind 127.0.0.1:8000
  4. 如果命令工作正常,那么我的设置就好了。否则,请尝试以下教程。在为生产设置新项目时,我总是自己使用本教程。试试吧。 Setting up Django with Nginx, Gunicorn and Supervisor

答案 1 :(得分:1)

你似乎已经全局安装了gunicorn而不是virtualenv,因此可执行文件指向全局Python及其site-packages目录,而不是virtualenv中的目录。在本地重新安装gunicorn。