我按照此线程installing python igraph中的说明为anaconda安装了python igraph库,因此成功安装了C核库和python包。但是,当我尝试在python中导入igraph库时,我收到以下错误
>>> import igraph
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/user/anaconda/lib/python2.7/site-packages/igraph/__init__.py", line 34, in <module>
from igraph._igraph import *
ImportError: dlopen(/Users/user/anaconda/lib/python2.7/site-packages/igraph/_igraph.so, 2): Library not loaded: libxml2.2.dylib
Referenced from: /Users/user/anaconda/lib/python2.7/site-packages/igraph/_igraph.so
Reason: Incompatible library version: _igraph.so requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0
寻找类似的主题,我在Installation of python igraph with lxml problem找到了类似的问题。但是,如何解决这个问题并没有明确的方法。有谁知道如何修理它?提前谢谢。
答案 0 :(得分:1)
Anaconda Python很奇怪 - 它附带了自己的版本libxml2
,当你运行pip install python-igraph
时,igraph可能与它相关联。但是,当您尝试导入igraph时,链接器会找到系统范围libxml2
,它具有较低的ABI版本,因此您就会看到错误消息。
解决方法是确保在编译阶段,编译器不会选择Anaconda Python的libxml2
。 igraph的Python界面中的setup.py
实际上包含了这个解决方法 - 它试图检测何时在OS X上编译Anigraph的Anigraph,然后调整环境以确保链接器选择正确的版本libxml2
。但是,只有在不在您的计算机上安装了igraph的C核心时才启用此解决方法 - 安装程序将下载C核,调整环境以解决Anaconda Python,然后编译C核心和Python接口一起完成。
因此,解决方案可能是以下之一:
将Anaconda Python的libxml2移开(或者暂时从Anaconda Python的发行版重命名xml2-config
),然后从Homebrew编译并安装C core。 (使用brew unlink igraph
,brew uninstall igraph
,brew install igraph
为安全起见。然后,您可以运行pip install python-igraph
。
完全删除 Homebrew的igraph并运行pip install python-igraph
- 它会下载C核心,执行必要的调整然后编译所有内容。
答案 1 :(得分:1)
我遇到了完全相同的问题,安装/强制链接private boolean checkLicense (String licenseNumber) {
for(int i = 0; i < (realtorList.size() - 1); i++) {
if (licenseNumber.equals(realtorList[i].getLicenseNumber())) {
return true;
}
}
return false;
}
对我有用:
libxml2
其他人也报告了相同的解决方案,似乎正在发挥作用。