linux – 设置WSGI应用程序时的PCRE问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 设置WSGI应用程序时的PCRE问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2582字,纯文字阅读大概需要4分钟。
内容图文
[上下文注意事项:我对linux是全新的,我正在尝试通过在线跟踪指南来学习,所以我对如何拍摄问题的理解非常有限]
我正在使用Ubuntu 16.04.2 LTS.
我一直在关注指南
How To Set Up uWSGI and Nginx to Serve Python Apps on Ubuntu 14.04.一旦我设置了virtualenv,我按照说明操作:
pip install uwsgi
You can verify that it is now available by typing:
uwsgi --version
If it returns a version number, the uWSGI server is available for use.
但是,当我这样做时,我得到:
uwsgi:加载共享库时出错:libpcre.so.1:无法打开共享对象文件:没有这样的文件或目录
如果我继续推进并进一步完成指南,当我尝试使用uwsgi时,事情会发生.
我的研究告诉我,PCRE是Perl兼容正则表达式,有几个人在线询问libpcre.so.1与其他应用程序有关的问题.
例如,对similar issue relating to nginx的回复:
The message means what it says. The nginx executable was compiled to
expect the PCRE (Perl-compatible Regular Expression) shared library to
be available somewhere on LD_LIBRARY_PATH or specified in
/etc/ld.so.conf or whatever equivalent library-locating mechanisms
apply to your operating system, and it cannot find the library.You will need to install PCRE – or configure your environment so that
nginx will look for the PCRE library where it is installed.
但是我找不到与安装PCRE或配置它有多大关系.大多数安装说明使用:apt-get install libpcre3 libpcre3-dev然后重新安装uwsgi pip install uwsgi -I.就像在这example.在那里我尝试了所有发布的东西,无处可去.
我认为我的主要问题是我不能很好地理解这个问题,或者如何处理上面nginx例子中提到的事情.
任何见解或指导都会非常感激(抱歉,如果太模糊!)
解决方法:
即使我的上下文可能不同,以下步骤也应该对您有所帮助.
我做了pip install uwsgi到我的环境中创建的conda create -yn< env_name>Python.请注意,甚至不需要将PCRE安装到环境中,因为它包含在Anaconda中.在source activate< env_name>之后,我们可以在环境中看到此问题:
# uwsgi --version
uwsgi: error while loading shared libraries: libpcre.so.1: cannot open...
使用root / sudo访问,您可以找到libpcre.so.1所在的位置:
# find / -name libpcre.so.1
/opt/anaconda3/lib/libpcre.so.1
现在让Linux知道如何访问它:
# ldconfig /opt/anaconda3/lib/
这就是让它发挥作用所需的一切.您可以看到您正在进行的更改:
# find / -name uwsgi
/opt/anaconda3/envs/<env_name>/bin/uwsgi
# ldd -d /opt/anaconda3/envs/<env_name>/bin/uwsgi
linux-vdso.so.1 => (0x00007fff2d1ba000)
...
/lib64/ld-linux-x86-64.so.2 (0x00007ff98dbc5000)
undefined symbol: pcre_free (/opt/anaconda3/envs/cts/bin/uwsgi)
PS关闭ldconfig以上填充全局缓存/etc/ld.so.cache,在我的情况下,与系统库(/lib/x86_64-linux-gnu/libdbus-1.so.3)冲突.所以我不得不通过运行没有参数的ldconfig来恢复更改,并采用运行时链接=启动uwsgi as
# LD_LIBRARY_PATH=/opt/anaconda3/lib uwsgi --version
内容总结
以上是互联网集市为您收集整理的linux – 设置WSGI应用程序时的PCRE问题全部内容,希望文章能够帮你解决linux – 设置WSGI应用程序时的PCRE问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。