uwsgi + python2.7 не может ничего импортировать - PullRequest
1 голос
/ 02 марта 2012

Я пытаюсь использовать 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 ...

Ты хоть представляешь, что происходит?

Большое спасибо!

1 Ответ

3 голосов
/ 02 марта 2012

Убедитесь, что ваш virtualenv создан для python2.7, иначе он не может быть использован.

Он должен содержать каталог /opt/myproj/virt/lib/python2.7

...