django和uwsgi配置问题

时间:2015-06-29 15:10:30

标签: django wsgi uwsgi

我正在努力让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

即使我在virtualenv中运行python3.4,为什么还没有找到正确的解释器和库?

我也正在

*** 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文件的目录吗?或上面的目录?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

[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

顺便提一下,请查看virtualenvwrappergunicorn。这个软件包可以帮助您进行日常开发。