2014-02-10 15 views
59

wenn uwsgi i folgende Meldung ausgeführt wird:Wiederaufbau uwsgi mit pcre Unterstützung

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

Ich habe bereits installiert pcre (glaube ich) mit dem folgenden Befehl:

Sudo apt-get install libpcre3 libpcre3-dev 

Meine Frage ist: Warum bekomme ich diese Nachricht auch, nachdem ich das pcre-Paket installiert habe und wenn ich uwsgi neu installieren und pcre aktivieren muss, wie mache ich das?

Auch, ist internes Routing wichtig? Ich nehme an, dass es das tut, sonst hätten die Macher von uwsgi die Nachricht nicht kommen lassen. Ich laufe Ubuntu 12.04 LTS.

Danke für die Hilfe!

Antwort

2

Haben Sie versucht:

pip install uwsgi -I 

Die -I Flagge wird es zwingen

+0

lief der Befehl und uwsgi neu installiert. Aber wenn ich es ausführe, bekomme ich immer noch die gleiche Nachricht über den Wiederaufbau mit PCRE-Unterstützung. – johnmic07

+1

@ johnmic07 libpcre3-dev ist genug und es ist unwahrscheinlich, dass Sie das Routing benötigen – jwalker

+0

Wenn Sie ein virtualenv Setup haben (und ich hoffe, Sie tun), könnte Ihr System zwischen dem lokalen uwsgi, dem globalen uwsgi verwechselt werden (wenn Sie mit 'sudo installieren Pip ") und vielleicht das System (wie" apt-get ") Paket. Ich würde es in einem virtualenv bauen und dann nach 'pcre = yes' in der Build-Ausgabe suchen und finden Sie das Programm in der Virtuellenv' bin' Verzeichnis – leech

86
pip install uwsgi -I 

Wird die uwsgi binäre nicht neu zu installieren neu kompilieren, es neu installiert nur die Python Ei. Sie müssen die uwsgi-Binärdatei mit den pcre-Bibliotheken neu erstellen.

sudo apt-get install libpcre3 libpcre3-dev 

Ich denke, der einfachste Weg ist einfach deinstallieren uwsgi und dann den Pip-Installer erneut ausführen.

pip uninstall uwsgi 
sudo apt-get remove uwsgi 

dann

pip install uwsgi 

sollten Sie sehen, pip den setup.py-Skript und eine Reihe von Compiler-Meldungen laufen. Die letzte Meldung sollten Sie so etwas wie dieses zeigen:

################# 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 ############# 

merken, wie pcre = true jetzt

+1

Ich folgte der Prozedur und ich bekomme diese Ausgabe nicht vom Compiler. Weißt du, wo kann ich diese Konfiguration unter Ubuntu finden? Ich kann es nicht finden unter/etc – chefarov

+2

Ich hatte das gleiche Problem, aber auf CentOS. Ich habe 'gcc *' und 'pcre-devel' anstelle von' libpcre3' und 'libpcre3-dev' installiert und UWSGI funktioniert jetzt einwandfrei. – axplusb

+0

Sie können auch in einer Aktion mit pip erneut installieren, indem Sie 'sudo/opt/storwizerest-venv/bin/pip installieren - force-reinstall -U --no-deps uwsgi' verwenden. '--force-reinstall' wird' -U' die gleiche Version neu installieren (und verwirrend, '--force-reinstall' tut nichts ohne' -U'), und '--no-deps' verhindert den Versuch zu aktualisieren alle Abhängigkeiten – Taywee

33

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

Es neu installiert (-I) als @leech sagte, ignoriert aber die kompilierte Cache (--no-cache-dir) und kompiliert das Ding mit den neuen Bibliotheken.

+2

Dies ist die Antwort, die für mich funktioniert hat, nicht die akzeptierte Antwort. – Rick

+0

Das funktionierte auch für mich. Dies war eines der Probleme, von denen ich dachte, dass sie nur ein paar Minuten brauchen würden, um sie herauszufinden, aber es dauerte Stunden. – trench

+0

Arbeitete gut für mich, eine All-in-One-Lösung, nachdem Sie 'pip uninstall uwsgi' gemacht haben. Vielen Dank! –

5
pip uninstall uwsgi 

sudo apt-get install libpcre3 libpcre3-dev 

pip install uwsgi 

Ich löste es mit den obigen Befehlen.

0

Wenn Sie alle oben versucht haben, aber es immer noch den gleichen Fehler und mit den unten genannten haben, überprüfen Sie bitte Ihre Befehlsparameter, insbesondere die --http-Socket /path/to/your.sock. Das ist der Pfad = '/ Pfad/zu' muss existieren

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