安装 igraph ¶
安装 igraph¶
二进制包(推荐)¶
建议安装包含 C 核心和 Python 接口的二进制包。您可以选择 PyPI 或 Conda。Linux 用户也可以使用他们的包管理器。
PyPI¶
PyPI 具有适用于 Windows、Linux 和 macOS 的安装程序。我们的目标是为 Python 3.x 的三个最新次要版本提供二进制包。
要全局安装 igraph 的 Python 接口,请使用以下命令(您可能需要管理员/root 权限)
$ pip install igraph
如果您更喜欢使用虚拟环境在用户文件夹中安装 igraph,请改用以下命令
$ python -m venv my_environment
$ source my_environment/bin/activate
$ pip install igraph
通常,如果您不想激活 virtualenv,您可以直接在其中调用 pip
可执行文件
$ python -m venv my_environment
$ my_environment/bin/pip install igraph
Conda¶
软件包由 conda-forge 提供
$ conda install -c conda-forge python-igraph
与 virtualenv 类似,Conda 也提供虚拟环境。如果您更喜欢该选项
$ conda create -n my_environment
$ conda activate my_environment
$ conda install -c conda-forge python-igraph
Linux 包管理器¶
igraph 的 Python 接口及其依赖项已针对大多数流行的 Linux 发行版打包,包括 Arch Linux、Debian、Fedora、GNU Guix、NixOS 和 Ubuntu。igraph 及其底层 C 核心通常位于两个不同的包中,但您的包管理器应该会为您处理该依赖关系。
注意
igraph 更新非常频繁:如果您需要的版本比您的包管理器提供的版本更新,请使用上面的 pip
或 conda
。对于 bleeding-edge 版本,请从源代码编译(参见下文)。
从源代码编译 igraph¶
您可能想要编译 igraph 以在发布之前测试最近添加的功能,或者在我们的持续开发管道未涵盖的架构上安装 igraph。
注意
在所有情况下,Python 接口都需要针对 igraph 核心 C 库的 匹配 版本进行编译。
使用 pip 编译¶
如果您想要 igraph 的开发版本,请调用
$ pip install git+https://github.com/igraph/python-igraph
pip
非常智能,可以从 Github 下载源代码,初始化 igraph C 核心的子模块,编译它,然后针对它编译 Python 接口并安装它。如上所述,虚拟环境是测试实验包的常用沙箱。
如果您想要来自 PyPI 的最新版本,但更喜欢(或必须)从源代码安装,请调用
$ pip install --no-binary ':all:' igraph
注意
如果您的系统无论如何都没有二进制文件,您可以尝试不使用 --no-binary
选项并获得相同的结果。
逐步编译¶
本节在实践中很少使用,但解释了如何在没有 pip
的情况下逐步编译和安装 igraph。
首先,从 Github 获取 bleeding-edge 源代码
$ git clone https://github.com/igraph/python-igraph.git
或从 PyPI 或 Github 发布页面下载最近的版本。如果需要,解压缩存档。
其次,进入文件夹
$ cd python-igraph
(它可能有略有不同的名称,具体取决于版本)。
第三,如果您从 Github 克隆了源代码,请初始化 igraph C 核心的 git
子模块
$ git submodule update --init
注意
如果您更喜欢针对现有的 igraph C 核心编译和链接 igraph,例如您使用包管理器安装的那个,您可以跳过 git
子模块初始化步骤。如果您下载了 tarball,您还需要删除 vendor/source/igraph
文件夹,因为 setup 脚本将首先查找 vendored igraph 副本。但是,Python 接口的特定版本保证仅适用于与其捆绑在一起的 C 核心版本(或 git
子模块指向的版本)。
第四,调用标准的 Python setup.py
脚本,例如用于编译
$ python setup.py build
(提示时按 Enter 键)。这将在名为 build/lib.<your system-your Python version>
的子文件夹中编译 Python 接口,例如 build/lib.linux-x86_64-3.8。您可以将该文件夹添加到您的 PYTHONPATH
(如果您想直接从中导入),或者您可以调用 setup.py
脚本以从那里安装它
$ python setup.py install
注意
setup.py
脚本采用多个选项来定制安装位置。
测试您的安装¶
单元测试使用标准的 unittest
模块实现,因此您可以像这样从您的源文件夹运行它们
$ python -m unittest discover
故障排除¶
问:我正在尝试在 Windows 上安装 igraph,但收到 DLL 导入错误¶
答:此错误最常见的原因是您的计算机上未安装 Visual C++ Redistributable 库。Python 自己的安装程序应该安装它,但如果它未安装在您的系统上,您可以从 Microsoft 下载。
问:我正在尝试使用 igraph,但收到有关名为 Cairo 的内容的错误¶
答:默认情况下,igraph 使用名为 Cairo 的第三方库进行绘图。如果您的计算机上未安装 Cairo,您可能会收到导入错误。此错误最常见于 Windows 计算机上。
有两种解决此问题的方法:安装 Cairo,或者如果您使用的是最近版本的 igraph,则切换到 matplotlib
绘图后端。
1. 安装 Cairo:正如此处所述,您需要使用您的包管理器 (Linux) 或 homebrew (macOS) 安装 Cairo 标头,然后
$ pip install pycairo
Cairo 项目不为 Windows 提供预编译的二进制文件,但 Christoph Gohlke 维护一个站点,其中包含几个 Python 扩展包(包括 Cairo)的非官方 Windows 二进制文件。因此,在 Windows 上安装 Cairo 及其 Python 绑定的最简单方法是从 Christoph 的站点下载它。请确保您使用的安装程序适合您的 Windows 平台(32 位或 64 位)和您正在使用的 Python 版本。
要检查 Cairo 是否已在您的系统上正确安装,请运行以下示例
>>> import igraph as ig
>>> g = ig.Graph.Famous("petersen")
>>> ig.plot(g)
如果 PyCairo 安装成功,这将显示一个 Petersen 图。
2. 切换到 matplotlib:您可以配置 igraph 以使用 matplotlib 而不是 Cairo。首先,安装它
$ pip install matplotlib
要将 matplotlib 用于单个绘图,请创建一个 matplotlib.figure.Figure
和 matplotlib.axes.Axes
事先 (例如使用 matplotlib.pyplot.subplots()
)
>>> import matplotlib.pyplot as plt
>>> import igraph as ig
>>> fig, ax = plt.subplots()
>>> g = ig.Graph.Famous("petersen")
>>> ig.plot(g, target=ax)
>>> plt.show()
要将 matplotlib 用于整个会话/笔记本
>>> import matplotlib.pyplot as plt
>>> import igraph as ig
>>> ig.config["plotting.backend"] = "matplotlib"
>>> g = ig.Graph.Famous("petersen")
>>> ig.plot(g)
>>> plt.show()
要在会话/笔记本中保留此首选项,您可以将其存储在 igraph 使用的默认配置文件中
>>> import igraph as ig
>>> ig.config["plotting.backend"] = "matplotlib"
>>> ig.config.save()
从现在开始,igraph 默认将使用 matplotlib 进行绘图。