没有找到GLIBC_2.14,如果我不是root,该怎么办?

时间:2018-02-02 21:59:30

标签: python c++ c++11

我正在尝试使用此链接中显示的pymcef:http://nbviewer.jupyter.org/github/hzzyyy/pymcef/blob/master/Quickstart%20tutorial.ipynb

它说

  

此软件包仅适用于64位操作系统,此外还有C ++ 11   运行库也是必需的。

我使用

安装软件包
conda install -c hzzyyy pymcef

运行时:

from pymcef import SimpleEF, RiskMeasure

我收到了错误:

/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/myaccount_name/anaconda2/lib/python2.7/site-packages/pymcef/_ppslp.so)

由于我不是远程计算机上的root用户,我有可能以某种方式完成这项工作吗? (最好可能安装一些conda)

3 个答案:

答案 0 :(得分:2)

您可以尝试在特定路径中安装glibc 2.14并使用env变量强制它:

export LD_LIBRARY_PATH=/home/user/.usr/lib

检查这个答案:

How to upgrade glibc from version 2.12 to 2.14 on CentOS?

你的发行版是什么,版本是什么?

答案 1 :(得分:1)

当python加载包含共享对象的模块时,它还需要加载它所依赖的任何共享对象。您可以使用

自行检查这些要求
ldd ~/anaconda2/lib/python2.7/site-packages/pymcef/_ppslp.so

任何"未找到"在使用该包之前,需要先解决依赖关系。最简单的方法是将依赖库放在同一目录中。

假设您在某处有glibc 2.14,您可以将它(以及 it 所依赖的任何其他库)放在上面的pymcef目录中。

请注意,默认情况下,您的软件包应该已安装在~/.local/lib/python2.7中,因此安装过程可能会创建映射到此位置的某些.pth文件。无论如何,如果python发现安装了_ppslp.so,那么将glibc添加到同一目录应该可以。

答案 2 :(得分:0)

我遇到了同样的错误,因此我跟踪了以下文件:string s = "a**b cd e*f."; size_t asteriskPos = s.find('*'); std::smatch m; bool b = std::regex_search(s.begin()+asteriskPos , s.end(), m, std::regex("[^a-z*]")); cout << b << endl; ,发现它与另一个glibc文件:libgcc_s.so.1的符号链接,因此我检查了另一个RHEL服务器,该服务器位于不同的RHEL中级别(基本上是较低级别)复制了该文件并替换了符号链接,它就起作用了。

/ HALATA