在 Ubuntu 上安装 python-igraph 时出错(从命令行)

Error installing python-igraph on Ubuntu (from command line)

我正在尝试从命令行安装 python-igraph。我在 AWS 服务器上创建了一个新的 Ubuntu 实例,所以我必须从命令行执行所有操作。这是我在 Ubuntu:

的全新安装中所做的
$sudo apt-get update
$sudo apt-get install build-essential
$sudo apt-get install python-dev
$sudo apt-get update
$sudo apt-get install python-pip
$sudo apt-get update
$sudo pip install python-igraph

我收到以下错误:

Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/python-igraph/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-XxxMbQ-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/python-igraph
Traceback (most recent call last):
 File "/usr/bin/pip", line 9, in <module>
load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()
 File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 235, in main
return command.main(cmd_args)
 File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 161, in main
text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 32: ordinal not in range(128)

要在 Ubuntu 上安装 pyhton-igraph,请尝试以下步骤:

  1. sudo add-apt-repository ppa:igraph/ppa
  2. sudo apt-get 更新
  3. sudo apt-get 安装 python-igraph

p.s 没有软件包 python-igraph 可用于 12.04 版本。

这似乎至少部分来自 pip - pip install python-igraph 期间出现问题,引发异常,pip 捕获异常并尝试将输出保存到它的日志文件。不幸的是,输出中的非 ASCII 字符阻止 pip 写入日志文件,这是您看到的最后一个异常(不是错误的实际原因)。在大多数情况下,非 ASCII 字符来自您的主目录或工作目录的名称,因此首先确保它们中没有任何非 ASCII 字符。如果这不起作用,您必须通过在 Python 路径中某处创建一个名为 sitecustomize.py 的文件并添加以下代码,将 Python 的默认编码设置为 utf-8

import sys
sys.setdefaultencoding('utf-8')

这将告诉 Python 使用 UTF-8 编码而不是 ASCII 对 IO 操作进行编码 - 希望这将使 pip 能够完成日志记录阶段,然后您可以查看实际输出。完成调试后不要忘记删除 sitecustomize.py

我在 Ubuntu 14.04 的 virtualenv 中让它工作。为 python-igraph 安装 Ubuntu 包并不简单,因为我的 virtualenv 不包括站点包,IIRC。

感谢@Tamás 的帮助和鼓舞人心的回答,当我得到奇数 UnicodeDecodeError 时,我又深入挖掘了一点。看来真正的错误是

/usr/bin/ld: cannot find -lxml2

但它发生在大约 13000 行构建输出之后,其中似乎已经成功地大量使用了 -lxml2。奇数

但根据

的一些建议

http://igraph.wikidot.com/installing-python-igraph-on-linux#toc0

我安装了一些库:

sudo aptitude install build-essential libxml2-dev libglpk-dev libgmp3-dev libblas-dev liblapack-dev libarpack2-dev python-dev

有人告诉我:

将安装以下新软件包: libarpack2-dev libbtf1.2.0{a} libcs​​parse3.1.2{a} libcxsparse3.1.2{a} libglpk-dev libgmp-dev{a} libgmp3-dev libgmpxx4ldbl{a} libklu1.2.1{a} libldl2.1.0{a} libspqr1 .3.1{a} libsuitesparse-dev{a} libxml2-dev

之后,pip install python-igraph成功了。我在这两种情况下都保留了整个输出,以防有人可以使用它来解决包装问题并帮助使其更加健壮。

额外提示:接下来我不知道如何获得 python cairo 绑定,因为 igraph 文档没有讨论 Linux cairo 绑定的安装,等等我自己的 我遇到了这个错误,这导致我对自己的追逐感到沮丧和失败:

Could not find any downloads that satisfy the requirement pycairo
Some externally hosted files were ignored (use --allow-external pycairo to allow).

解决方案是使用更新的一组绑定:

pip install cairocffi