Перестроить uwsgi с поддержкой pcre

при запуске uwsgi я получаю следующее сообщение:

!!! no internal routing support, rebuild with pcre support !!!

Я уже установил pcre (я думаю) со следующей командой:

Sudo apt-get install libpcre3 libpcre3-dev

Мой вопрос: почему я все еще получаю это сообщение даже после того, как я установил пакет pcre, и если мне нужно переустановить uwsgi и активировать pcre, как мне это сделать?

Кроме того, существует ли внутренняя маршрутизация? Я предполагаю, что это так или иначе создатели uwsgi не заставили бы сообщение придумать. Я бегу Ubuntu 12.04 LTS.

Спасибо за помощь!

Ответ 1

pip install uwsgi -I

Не перекомпилирует двоичный файл uwsgi, он просто переустанавливает яйцо python. Вам нужно перестроить двоичный файл uwsgi с библиотеками pcre.

sudo apt-get install libpcre3 libpcre3-dev

Я думаю, что самый простой способ - просто удалить uwsgi, а затем снова запустить программу установки.

pip uninstall uwsgi
sudo apt-get remove uwsgi

затем

pip install uwsgi

вы должны увидеть, что pip запустил setup.py script и кучу сообщений компилятора. Последнее сообщение должно показать вам следующее:

################# uWSGI configuration #################

pcre = True
kernel = Linux
malloc = libc
execinfo = False
ifaddrs = True
ssl = True
zlib = True
locking = pthread_mutex
plugin_dir = .
timer = timerfd
yaml = embedded
json = False
filemonitor = inotify
routing = True
debug = False
capabilities = False
xml = libxml2
event = epoll

############## end of uWSGI configuration #############

сообщите, как pcre = true сейчас

Ответ 2

pip install uwsgi -I --no-cache-dir

Он переустанавливает (-I), как сказал @leech, но игнорирует скомпилированный кеш (--no-cache-dir) и перекомпилирует вещь с новыми библиотеками.

Ответ 3

pip uninstall uwsgi

sudo apt-get install libpcre3 libpcre3-dev

pip install uwsgi

Я решил это с помощью приведенных выше команд.

Ответ 4

Вы пытались:

pip install uwsgi -I 

Флаг -I заставит его переустановить

Ответ 5

Если вы пробовали все выше, но все равно должны иметь одинаковую ошибку и с приведенными ниже, проверьте свои параметры команды, в частности --http-socket/path/to/your.sock. Это путь = '/path/to' должен существовать

thunder lock: disabled (you can enable it with --thunder-lock)
bind(): No such file or directory [core/socket.c line 230]