跳转到主要内容

用Rust实现的Python图库

项目描述

retworkx

retworkx是rustworkx的已废弃的包名。如果您正在使用retworkx包(无论是作为依赖项还是导入),则应将其更新为使用rustworkx。将来,仅支持rustworkx名称。

rustworkx

License Build Status Build Status Coverage Status Minimum rustc 1.70 DOI arXiv Zenodo

Python的一个高性能、通用图库,用Rust编写。

用法

安装后,只需导入rustworkx。所有图类和顶级函数都可以通过单个导入访问。为了说明这一点,以下示例计算了无向图中节点AC之间的最短路径。

import rustworkx

# Rustworkx's undirected graph type.
graph = rustworkx.PyGraph()

# Each time add node is called, it returns a new node index
a = graph.add_node("A")
b = graph.add_node("B")
c = graph.add_node("C")

# add_edges_from takes tuples of node indices and weights,
# and returns edge indices
graph.add_edges_from([(a, b, 1.5), (a, c, 5.0), (b, c, 2.5)])

# Returns the path A -> B -> C
rustworkx.dijkstra_shortest_paths(graph, a, c, weight_fn=float)

安装rustworkx

rustworkx 发布在 PyPI 上,因此在 x86_64、i686、ppc64le、s390x 和 aarch64 Linux 系统、Mac OSX 的 x86_64 以及 32 位和 64 位 Windows 系统上安装非常简单,只需运行

pip install rustworkx

这将安装 rustworkx 的预编译版本到您的 Python 环境中。

在没有预编译二进制文件的平台上安装

如果没有为您的系统发布预编译的二进制文件,您将不得不从源代码构建该软件包。但是,要从发布的源代码包中构建软件包,您需要安装 Rust >= 1.70(以及通常包含在 rust 中的 cargo)。您可以使用 rustup(一个 rust 的跨平台安装程序)来简化这一过程,或者依赖于 其他安装方法。源代码包也发布在 PyPI 上,因此您仍然可以运行上述 pip 命令来安装它。一旦您正确安装了 rust,运行

pip install rustworkx

将从源代码包为您的本地系统构建 rustworkx 并安装它,就像有预构建的二进制文件可用一样。

[!注意]
要从源代码构建,您需要确保已安装 pip >= 19.0.0,它支持 PEP-517,或者您在运行 pip install rustworkx 之前手动安装了 setuptools-rust。如果您收到有关找不到 setuptools-rust 的错误,您应使用 pip install -U pip 升级 pip 或手动使用 pip install setuptools-rust 安装 setuptools-rust 并重试。

可选依赖项

如果您计划使用 rustworkx.visualization 模块,您将需要安装可选依赖项才能使用这些功能。基于 matplotlib 的绘图函数 rustworkx.visualization.mpl_draw 需要安装 matplotlib 库。您可以使用 pip install matplotlib 安装它,或者当您使用 pip install 'rustworkx[mpl]' 安装 rustworkx 时。如果您打算使用基于 graphviz 的绘图函数 rustworkx.visualization.graphviz_drawer,首先您需要安装 graphviz,有关说明请参阅此处:https://graphviz.cpp.org.cn/download/#executable-packages。然后您需要安装 pillow Python 库。这可以通过 pip install pillow 或在安装 rustworkx 时使用 pip install 'rustworkx[graphviz]' 来完成。

如果您希望在安装 rustworkx 时安装所有可选的 Python 依赖项,您可以使用 pip install 'rustworkx[all]' 来完成此操作。

作者和引用

rustworkx 是许多人的工作成果,他们以不同的级别为项目做出贡献。如果您在研究中使用 rustworkx,请按照包含的 BibTeX 文件 引用我们的 论文

社区

除了 Github 的互动(如打开问题)外,还有两个地方可以与其他 rustworkx 用户和开发者交谈。第一个是在 Qiskit 工作空间中的一个公共 Slack 频道 #rustworkx。您可以通过 这里 加入 Qiskit Slack 工作空间。此外,在 OFTC IRC 网络 上有一个 #rustworkx 频道。

从源代码构建

从源代码构建 rustworkx 的第一步是使用以下命令将其克隆到本地:

git clone https://github.com/Qiskit/rustworkx.git

rustworkx 使用 PyO3setuptools-rust 来构建 Python 接口,这使得可以使用标准的 Python 工具进行工作。因此,假设你已经安装了 rust,你可以使用 pip 轻松地将 rustworkx 安装到你的 Python 环境中。一旦你有了仓库的本地副本,将你的当前工作目录更改到仓库的根目录。然后,你可以使用以下命令将 rustworkx 安装到你的 Python 环境中:

pip install .

假设你的当前工作目录仍然是仓库的根目录。如果不是,你可以运行

pip install $PATH_TO_REPO_ROOT

这将以相同的方式安装它。然后 rustworkx 就已经安装在你的本地 Python 环境中了。不过,在此过程中有两个需要注意的事项:首先,如果你尝试使用这种方法从仓库根目录运行 Python,它将不会像你预期的那样工作。由于构建该软件包时使用的本地 Python 包包装器,仓库根目录中存在名称冲突。只需在仓库根目录之外运行你的 rustworkx 脚本或程序即可。第二个问题是,你对你对 rust 代码所做的任何本地更改都不会实时反映在你的 Python 环境中,你需要重新运行 pip install 以使更改反映在你的 Python 环境中。

开发模式

如果你想以调试模式构建 rustworkx 并在更改时使用交互式调试器,可以使用 python setup.py develop 命令以开发模式构建和安装 rustworkx。这将构建没有优化并且包含调试信息的 rustworkx,这对于调试非常有用。请注意,以这种方式安装 rustworkx 会比使用 pip install 慢得多,并且仅适用于调试/开发。

[!TIP] 值得注意的是,pip install -e 是不可用的,因为它会将 Python 包包装器链接到你的 Python 环境中,但不会构建 rustworkx 二进制文件。如果你想以调试模式构建 rustworkx,你必须使用 python setup.py develop

项目历史

rustworkx 最初被称为 retworkx,最初是为了替换 Qiskit 的之前(以及当前的)NetworkX 使用(因此得名)。该项目最初是为了构建一个更快的有向图,用作 qiskit 转换器的 DAG 的底层数据结构。然而,自其最初引入以来,该项目已经大幅增长,现在涵盖了所有需要与图一起工作的应用程序,包括 Qiskit。

项目细节


下载文件

下载适用于你的平台的文件。如果你不确定要选择哪一个,了解更多关于 安装软件包 的信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅有关 生成分发存档 的教程。

构建分发

retworkx-0.15.1-py3-none-any.whl (10.4 kB 查看哈希值)

上传时间 Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面