Я пытаюсь использовать uwsgi + python2.7 + django + nginx в Debian 6.
Я установил uwsgi с командой: pip2.7 install uwsgi
, поэтому он работает с python 2.7.
Я запускаю UWSGI в режиме императора с командой:
uwsgi --emperor / etc / uwsgi / vassals / -d /var/log/uwsgi.log --pidfile /var/run/uwsgi.pid
Папка vassals содержит только одно приложение на данный момент. Вот это файл yaml:
uwsgi:
socket: /home/uwsgi/uwsgi/uwsgi.sock
virtualenv: /opt/myproj/virt
pythonpath: /home/uwsgi/project/my_proj
pidfile: /home/uwsgi/uwsgi/uwsgi.pid
uid: uwsgi
gid: uwsgi
chmod-socket: 1
module: wsgi_app
daemonize: /home/uwsgi/uwsgi/uwsgi.log
harakiri-verbose: 1
Это содержимое файла проекта Django:
#! /usr/bin/python
SITE_DIR = '/home/uwsgi/project/my_proj'
import site
site.addsitedir(SITE_DIR)
import os
import sys
sys.path.append(SITE_DIR)
sys.path.append('/home/uwsgi/project/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_proj.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Теперь, когда я пытаюсь запустить его, вот файл /home/uwsgi/uwsgi/uwsgi.log:
*** Starting uWSGI 1.0.4 (32bit) on [Fri Mar 2 19:00:46 2012] ***
compiled with version: 4.6.2 on 02 March 2012 18:03:07
current working directory: /etc/uwsgi/vassals
writing pidfile to /home/uwsgi/uwsgi/uwsgi.pid
detected binary path: /usr/local/bin/uwsgi
setgid() to 1001
setuid() to 1001
your memory page size is 4096 bytes
chmod() socket to 666 for lazy and brave users
uwsgi socket 0 bound to UNIX address /home/uwsgi/uwsgi/uwsgi.sock fd 3
Python version: 2.7.2+ (default, Dec 1 2011, 02:17:49) [GCC 4.6.2]
Set PythonHome to /opt/myproj/virt
ImportError: No module named site
*** Starting uWSGI 1.0.4 (32bit) on [Fri Mar 2 19:00:47 2012] ***
compiled with version: 4.6.2 on 02 March 2012 18:03:07
current working directory: /etc/uwsgi/vassals
writing pidfile to /home/uwsgi/uwsgi/uwsgi.pid
detected binary path: /usr/local/bin/uwsgi
setgid() to 1001
setuid() to 1001
your memory page size is 4096 bytes
chmod() socket to 666 for lazy and brave users
uwsgi socket 0 bound to UNIX address /home/uwsgi/uwsgi/uwsgi.sock fd 3
Python version: 2.7.2+ (default, Dec 1 2011, 02:17:49) [GCC 4.6.2]
Set PythonHome to /opt/myproj/virt
ImportError: No module named site
Как видите, uwsgi не может импортировать модуль сайта, поэтому uwsgi продолжает пытаться перезапустить приложение.
Поэтому я попытался добавить опцию no-site: 1 в файл yaml. В результате я ничего не могу импортировать в файл проекта Django ...
Я также знаю, что он не связан с проектом, потому что, если я запускаю uwsgi с python 2.6, он просто отлично работает ... К сожалению, я должен запустить его с python2.7 ...
Ты хоть представляешь, что происходит?
Большое спасибо!