用pcre支持重建uwsgi

joh*_*c07 66 pcre uwsgi

当运行uwsgi时,我收到以下消息:

!!! no internal routing support, rebuild with pcre support !!!
Run Code Online (Sandbox Code Playgroud)

我已经使用以下命令安装了pcre(我认为):

Sudo apt-get install libpcre3 libpcre3-dev
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么即使在我安装了pcre软件包之后我仍然收到此消息,如果我需要重新安装uwsgi并激活pcre我该怎么做?

此外,内部路由是否重要?我认为它确实如此,否则uwsgi的制造商就不会提出这个消息.我运行Ubuntu 12.04 LTS.

谢谢您的帮助!

小智 95

pip install uwsgi -I
Run Code Online (Sandbox Code Playgroud)

不会重新编译uwsgi二进制文件,它只是重新安装python egg.您需要使用pcre库重建uwsgi二进制文件.

sudo apt-get install libpcre3 libpcre3-dev
Run Code Online (Sandbox Code Playgroud)

我认为最简单的方法就是卸载uwsgi,然后再次运行pip安装程序.

pip uninstall uwsgi
sudo apt-get remove uwsgi
Run Code Online (Sandbox Code Playgroud)

然后

pip install uwsgi
Run Code Online (Sandbox Code Playgroud)

你应该看到pip运行setup.py脚本和一堆编译器消息.最后一条消息应该显示如下:

################# 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 #############
Run Code Online (Sandbox Code Playgroud)

现在注意pcre = true

  • 我在CentOS上遇到了同样的问题.我安装了`gcc*`和`pcre-devel`而不是`libpcre3`和`libpcre3-dev`,现在UWSGI工作正常. (3认同)
  • 我按照程序操作,我没有从编译器获得此输出.你知道在哪里可以找到ubuntu下的配置吗?我在/ etc下找不到它 (2认同)

ala*_*jds 61

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

它重新安装(-I),如@leech所说,但忽略编译的缓存(--no-cache-dir)并使用新的lib重新编译事物.

  • 这个答案对我有用,而不是接受的答案. (8认同)
  • 这对我也有用。这是我认为只需要几分钟就能解决的问题之一,但最终花了几个小时。 (2认同)
  • 适用于高山(需要apk在之前添加pcre-dev) (2认同)

小智 8

pip uninstall uwsgi

sudo apt-get install libpcre3 libpcre3-dev

pip install uwsgi
Run Code Online (Sandbox Code Playgroud)

我用上面的命令解决了它.


小智 5

完成@alanjds 的回答,以下是向已安装的 uWSGI 添加 pcre 支持的过程。

sudo apt-get install libpcre3 libpcre3-dev
pip install uwsgi -I --no-cache-dir
Run Code Online (Sandbox Code Playgroud)

您不需要卸载 uWSGI


lee*_*ech 4

你试过了吗:

pip install uwsgi -I 
Run Code Online (Sandbox Code Playgroud)

-I标志将强制它重新安装