Macos 在anaconda分发的python上安装igraph?(和graphviz)

Macos 在anaconda分发的python上安装igraph?(和graphviz),macos,python-2.7,igraph,anaconda,pygraphviz,Macos,Python 2.7,Igraph,Anaconda,Pygraphviz,我试图在Anaconda上安装igraph软件包,但到目前为止还没有成功。如果有人想办法得到它,我将非常乐意尝试!!下面是我尝试做的一些细节(如果你有在Anaconda上安装igraph的解决方案,你不必阅读!) 我使用的是MAC OS X Yosemite(MAC book Pro 2,3 GHz Intel Core i7)。以下是一些配置参数: MBP de Lecue:站点包lecueguillaume$哪个python /Users/lecuegillaume/anaconda/bin

我试图在Anaconda上安装igraph软件包,但到目前为止还没有成功。如果有人想办法得到它,我将非常乐意尝试!!下面是我尝试做的一些细节(如果你有在Anaconda上安装igraph的解决方案,你不必阅读!)

我使用的是MAC OS X Yosemite(MAC book Pro 2,3 GHz Intel Core i7)。以下是一些配置参数: MBP de Lecue:站点包lecueguillaume$哪个python /Users/lecuegillaume/anaconda/bin/python MBP de Lecue:站点包lecueguillaume$哪个pip /用户/lecueguillaume/anaconda/bin/pip

igraph应通过pip安装。因为,当我键入pip list时,我可以在列表中看到包igraph

python igraph(0.7)

但当我尝试导入igraph时,我得到的是:

MBP de Lecue:站点包lecueguillaume$python Python 2.7.8 | Anaconda 2.1.0(x86_64)|(默认,2014年8月21日,15:21:46) [GCC 4.2.1(Apple Inc.build 5577)]关于达尔文

导入图 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“build/bdist.macosx-10.5-x86_64/egg/igraph/init.py”,第34行,在

文件“build/bdist.macosx-10.5-x86_64/egg/igraph/_igraph.py”,第7行,在 文件“build/bdist.macosx-10.5-x86_64/egg/igraph/_igraph.py”,第6行,在引导程序中 导入错误:dlopen(/Users/lecuegillaume/.python-eggs/python_-igraph-0.7-py2.7-macosx-10.5-x86_-64.egg-tmp/igraph//u-igraph.so,2):未加载库:libxml2.2.dylib 引用自:/Users/lecuegillaume/.python-eggs/python_-igraph-0.7-py2.7-macosx-10.5-x86_64.egg-tmp/igraph//u-igraph.so 原因:库版本不兼容:_igraph.so需要版本12.0.0或更高版本,但libxml2.2.dylib提供版本10.0.0

所以问题来自libxml2-2。我尝试用brew升级libxml: MBP de Lecue:站点包lecueguillaume$brew升级libxml2 错误:已安装libxml2-2.9.2

1) 我不明白的第一件事是libxml2.2版本12.0.0似乎不存在。上的最新版本是9.2。那么为什么igraph要求12.0版呢?(我确实错过了一些东西)

brew没有帮助是因为它没有更新正确的libxml: MBP de Lecue:站点包lecueguillaume$哪个brew /usr/local/bin/brew

2) 我怎样才能告诉brew更新Anaconda/pkgs中的Anaconda libxml库

3) 我还尝试使用conda pipbuild python igraph安装graph。一切进展顺利:成功安装了python igraph 除了它必须自己安装igraph的C内核,而我已经安装了它: 安装收集的软件包:pythonigraph 运行针对python igraph的setup.py安装 使用pkg config在此系统上找不到igraph的C内核。 我们现在将尝试从头开始下载和编译C核心。 C内核的版本号:0.7 我们还将尝试:0.7.0

因此,看起来康达的安装效果不错,但“导入igraph”仍然不起作用

4) 最后,当我使用内置MAC版python时,igraph工作得很好: MBP de Lecue:站点包lecueguillaume$哪个python2.7 /opt/local/bin/python2.7 MBP de Lecue:站点包lecueguillaume$python2.7 Python 2.7.8(默认值,2014年7月13日,17:11:32) [GCC 4.2.1达尔文兼容苹果LLVM 5.1(clang-503.0.40)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”

导入图

因此igraph在python的MAC版本中安装得很好,但在Anaconda版本中却没有。因为我使用的是Anaconda笔记本(它可以与Anaconda python一起工作),所以我想在上面安装igraph

抱歉问了这么长的问题(这是我第一次问问题)。graphviz包(安装在MAC python2.7版本上,但不安装在Anaconda python版本上)也有同样的问题

非常感谢您的帮助


纪尧姆。

好的,这里有多个问题,所以我将尝试逐一回答

  • 您看到的版本号与libxml2的“官方”版本号没有任何关系(顺便说一下,在撰写本文时是2.9.2,而不是9.2)。这是库的应用程序二进制接口(ABI)的版本号。一些项目选择保持ABI的版本号与库的“公共”版本号同步,但这不是必需的。您可以使用
    otool-L
    在Mac上检查库的ABI版本;e、 例如,
    otool-L/usr/lib/libxml2.2.dylib
    在Mac上为我提供了
    当前版本10.9.0

    现在,您的系统上似乎有多个
    libxml2
    副本。一个来自OSX本身,它位于
    /usr/lib
    中。另一个是从brew安装的-它位于
    /usr/local/lib
    中的某个位置。也许还有第三个来自蟒蛇。问题是igraph在编译时链接到其中一个(使用ABI版本12.0.0),但当您尝试导入igraph时,系统找不到该libxml2,而是尝试链接到另一个使用ABI版本10.0.0的libxml2。这件事由你来解决。首先,我会在您的机器上查找所有出现的
    libxml2*.dylib
    ,并在所有这些机器上运行
    otool-L
    ,查看哪一个具有ABI 12.0.0版-这就是igraph链接的机器。然后,您可以尝试在编译和安装igraph时临时重命名此库(以防止链接器找到它并链接到它),并在安装完成后重新重命名它。通过这种方式,您可以获得igraph的编译版本,该版本链接到libxml2的“正确”版本

  • Brew不会安装来自Anaconda Python的libxml2,这是正确的——让一个软件(即Brew)运行通常是个坏主意