LINUX.ORG.RU

uwsgi использует системный питон, а не venv

 , ,


1

1

OS: Fedora 25

/etc/uwsgi.d/pycms.ws.ini

[uwsgi]
    autoload        = true
    plugins         = python3
    master          = true
    workers         = 1
    threads         = 1
    harakiri        = 30 
    max-requests    = 5000
    chdir           = /ws/pycms.ws/src
    pythonpath      = /ws/pycms.ws/src
    pythonpath      = /ws/.pyvenv/main/lib/python3.6/site-packages
    virtualenv      = /ws/.pyvenv/main
    module          = wsgi:application
    chmod-socket    = 777
    socket          = /run/uwsgi/getws.sock
    logfile-chmod   = 664
    logto           = /ws/pycms.ws/logs/uwsgi.log

python 3.6 install

dnf install zlib-devel openssl-devel

./configure 
make
make altinstall

создал venv командой

python3.6 -m venv .pyvenv/main

Установил плагин с поддержкой 3.6

dnf install uwsgi-plugin-python3 --enablerepo=updates-testing

но в лог файле

[uWSGI] getting INI configuration from pycms.ws.ini
*** Starting uWSGI 2.0.14 (64bit) on [Sun Jan 15 18:06:04 2017] ***
compiled with version: 6.3.1 20161221 (Red Hat 6.3.1-1) on 13 January 2017 23:06:38
os: Linux-4.9.3-200.fc25.x86_64 #1 SMP Fri Jan 13 01:01:13 UTC 2017
nodename: localhost.localdomain
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /etc/uwsgi.d
detected binary path: /usr/sbin/uwsgi
chdir() to /ws/pycms.ws/src
your processes number limit is 15216
your memory page size is 4096 bytes
 *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** 
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 inherited UNIX address /run/uwsgi/getws.sock fd 3
Python version: 3.5.2 (default, Sep 14 2016, 11:28:32)  [GCC 6.2.1 20160901 (Red Hat 6.2.1-1)]
PEP 405 virtualenv detected: /ws/.pyvenv/main
Set PythonHome to /ws/.pyvenv/main
Python main interpreter initialized at 0x1842670
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145536 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
added /ws/pycms.ws/src/ to pythonpath.
added /ws/.pyvenv/main/lib/python3.6/site-packages/ to pythonpath.
init123
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x1842670 pid: 6440 (default app)
*** uWSGI is running in multiple interpreter mode ***
gracefully (RE)spawned uWSGI master process (pid: 6440)
spawned uWSGI worker 1 (pid: 6456, cores: 1)
почему Python version: 3.5.2? как исправить чтоб был 3.6.0?



Последнее исправление: iYaroslav (всего исправлений: 4)
Ответ на: комментарий от anonymous

Обезательно посмотрю, но интересует решение проблемы uwsgi

iYaroslav
() автор топика

Сталкивался году в 09-м, не помню как решал. Шамань с конфигами, проверяй в консолях работоспособность конфигураций. Для ЮВСЖИ не существует понятия venv, надо напрямую путь к пистону ему указывать, а лучше используй что-то готовое для конфигурации или запускай вообще из tmux, что ты как не мужик? сервер ребутат собираешься? не ссы, все будет хорошо блин, я так всегда делаю брат жив же.

anonymous
()

При старте uwsgi возможно берет по умолчанию системный питон, надо посмотреть в опциях, можно ли принудительно указать от какого питона запускаться

ism ★★★
()
Ответ на: комментарий от ism

пересобрал питон c

export CFLAGS="$CFLAGS -fPIC"

собрал плагин под 3.6 и теперь лог файле ошибка

*** Operational MODE: single process ***
!!! uWSGI process 25341 got Segmentation Fault !!!
*** backtrace of 25341 ***
/usr/sbin/uwsgi(uwsgi_backtrace+0x35) [0x468235]
/usr/sbin/uwsgi(uwsgi_segfault+0x23) [0x468613]
/lib64/libc.so.6(+0x35990) [0x7f0091039990]
/lib64/libc.so.6(strlen+0x26) [0x7f0091090fe6]
/usr/lib64/uwsgi/python36_plugin.so(PyUnicode_FromString+0x9) [0x7f008f5e7829]
/usr/lib64/uwsgi/python36_plugin.so(init_pyargv+0x1cb) [0x7f008f52d08b]
/usr/lib64/uwsgi/python36_plugin.so(uwsgi_python_preinit_apps+0x9) [0x7f008f52b6c9]
/usr/sbin/uwsgi(uwsgi_start+0x977) [0x469d07]
/usr/sbin/uwsgi(uwsgi_setup+0x1258) [0x46bc28]
/usr/sbin/uwsgi(main+0x9) [0x4178b9]
/lib64/libc.so.6(__libc_start_main+0xf1) [0x7f0091024401]
/usr/sbin/uwsgi(_start+0x2a) [0x4178ea]
*** end of backtrace ***

iYaroslav
() автор топика
Ответ на: комментарий от FIL

Сабж - адов комбайн со своим питоньим интерпретатором внутри, слинкованный с libpythonX.X.so. А gunicorn - обычный питоний модуль, который использует тот питон, которым ты его запускаешь.

anonymous
()
Ответ на: комментарий от iYaroslav

Переустановить uwsgi ? Он должен перекомпилироваться

А вообще уснанавливать питон собирая вручную не лучший вариант, лучше найти готовый репозиторий

ism ★★★
()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от ism

тс все делает не правильно, потому что не понимает что делает (танцы с бубном), пусть продолжает эмпирические поиски, шишки это опыт

anonymous
()
Ответ на: комментарий от iYaroslav

Через пол года, когда потребуется что-то изменить в конфигурации, ждем обратно с аналогичной темой.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.