# cat /etc/uwsgi/apps-enabled/vek.ini
[uwsgi]
chdir=/srv/vek/django
module=vek.wsgi:application
home=/root/.virtualenvs/vek/bin/python
# service uwsgi restart
# tail -f /var/log/uwsgi/app/vek.log
...
Thu Jun 23 18:04:26 2016 - *** Starting uWSGI 2.0.12-debian (64bit) on [Thu Jun 23 18:04:26 2016] ***
Thu Jun 23 18:04:26 2016 - compiled with version: 5.3.1 20160412 on 13 April 2016 08:36:06
Thu Jun 23 18:04:26 2016 - os: Linux-4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016
Thu Jun 23 18:04:26 2016 - nodename: vek-dverey.ru
Thu Jun 23 18:04:26 2016 - machine: x86_64
Thu Jun 23 18:04:26 2016 - clock source: unix
Thu Jun 23 18:04:26 2016 - pcre jit disabled
Thu Jun 23 18:04:26 2016 - detected number of CPU cores: 1
Thu Jun 23 18:04:26 2016 - current working directory: /
Thu Jun 23 18:04:26 2016 - writing pidfile to /run/uwsgi/app/vek/pid
Thu Jun 23 18:04:26 2016 - detected binary path: /usr/bin/uwsgi-core
Thu Jun 23 18:04:26 2016 - setgid() to 33
Thu Jun 23 18:04:26 2016 - setuid() to 33
Thu Jun 23 18:04:26 2016 - chdir() to /srv/vek/django
Thu Jun 23 18:04:26 2016 - your processes number limit is 3912
Thu Jun 23 18:04:26 2016 - your memory page size is 4096 bytes
Thu Jun 23 18:04:26 2016 - detected max file descriptor number: 1024
Thu Jun 23 18:04:26 2016 - lock engine: pthread robust mutexes
Thu Jun 23 18:04:26 2016 - thunder lock: disabled (you can enable it with --thunder-lock)
Thu Jun 23 18:04:26 2016 - uwsgi socket 0 bound to UNIX address /run/uwsgi/app/vek/socket fd 3
Thu Jun 23 18:04:26 2016 - Python version: 3.5.1+ (default, Mar 30 2016, 22:46:26) [GCC 5.3.1 20160330]
Thu Jun 23 18:04:26 2016 - Set PythonHome to /root/.virtualenvs/vek/bin/python
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Current thread 0x00007f0e33afd780 (most recent call first):
> проблема в том, что запускать от рута плохо
От рута стандартные системные сетевые сервисы не запускаются. Nginx и uwsgi запускаются от www-data
> также как и располагать виртуаленв в домашней директории рута
По умолчанию virtualenvwrapper располагает virtualenv в домашней директории юзера, на сервере я работаю под рутом, так что все логично. Мне удобней использовать именно vitrualenvwrapper, а не virtualenv, в том числе и потому что думать не надо где физически лежат текущие env.
Но проблема не в этом - я попробовал другой virtualenv, вне каталога рута, и это не решило проблему. В общем я забил и буду использовать глобальный Python, благо на этом сервере один проект, который постепенно переезжает на Ноду. Но выловить ошибку все равно было бы интересно.