如何使用 Gunicorn/WSGI 网络服务器 运行 Django 应用程序?

How to run Django app with Gunicorn/WSGI webserver?

我的现有 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 一起使用吗?如何解决此问题?

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

  1. 激活你的虚拟环境
  2. 转到您的项目目录
  3. 运行 gunicorn mySite.wsgi:application --bind 127.0.0.1:8000

如果命令工作正常,那么我的设置就完成了。否则,请尝试以下教程。在为生产设置新项目时,我自己总是使用本教程。尝试一下。 Setting up Django with Nginx, Gunicorn and Supervisor

您似乎在全局而不是在 virtualenv 中安装了 gunicorn,因此可执行文件指向全局 Python 及其站点包目录而不是 virtualenv 中的目录。在本地重新安装 gunicorn。