django 和 uwsgi 配置问题

django and uwsgi configuration issues

我正在尝试让 django 项目与 uswgi 和 virtualenv 一起工作

我对一些参数的位置和守护进程的输出感到困惑

到目前为止这是我的配置

**[uwsgi]
socket=172.26.1.87:8000
chdir=/home/bischofs/1065/1065-Calculation-Tool/TestSite/
module=TestSite.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
#daemonize=/var/log/uwsgi/TestSite.log
virtualenv=/home/bischofs/1065/python3.4/% **

我的问题是当我加载它时我得到

Python version: 2.7.8 (default, Oct 20 2014, 15:08:52)  [GCC 4.9.1]
Set PythonHome to /home/bischofs/1065/python3.4/
*** Python threads support is disabled. You can enable it with --    enable-threads ***
Python main interpreter initialized at 0xfcd820
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds

即使我 运行 python3.4 在 vi​​rtualenv 中,为什么没有选择正确的解释器和库?

我也收到了

*** Operational MODE: single process ***
ImportError: No module named TestSite.wsgi

即使我有一个正确生成的 wsgi.py 文件

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "TestSite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

这让我觉得我将 ini 文件指向了错误的目录。

uswgi 文档不清楚应该指向哪个目录。它只是说 /path/to/your/project。这是否意味着包含 settings.py 文件的目录?还是上面的目录?

我用过这个配置 - 一切都很好。

[uwsgi]
chdir=/var/www/prj_name
home=/home/uwsgi/.virtualenvs/prj_name/
pythonpath=/var/www/prj_name
env=DJANGO_SETTINGS_MODULE=prj_name.settings
module=prj_name.wsgi:application
socket=127.0.0.1:3001
master=True
vacuum=True
max-requests=5000
threads = 20
enable-threads = True
buffer-size = 8192
logger = file:/var/logs/prj_name/uwsgi.log

顺便看看virtualenvwrapper and gunicorn。这个包可以在日常开发中给你很大的帮助。

uWSGI 是一个链接到特定 python 库(如 apache+mod_wsgi)的二进制应用程序。 运行 它在 virtualenv 中只改变它对 python 模块的看法,而不是它所链接的 python 库。当您使用 ubuntu 包时,您只需要为 python 3 安装插件(并使用 plugin = python3 加载它)。否则激活您的 virtualenv 和 pip install uwsgi 以获得与 virtualenv 特定 python 库链接的整体版本。