用rust实现的python图形库
retworkx的Python项目详细描述
retworkx是python3的rust图形库接口。现在是范围 是作为qiskit-terra的潜在替代品的一个实验 networkx用法(因此得名)。范围可能会随着时间的推移而增长或改变,但是 一开始就是要建一个DAG,然后用表演来操作它 以及铁锈带来的安全。这也是学习如何 将rust与python接口。
安装retworkx
retworkx在pypi上发布,因此在x86_64和i686 linux系统上或在x86_64上 Mac OSX和Windows的安装就像运行一样简单:
pip install retworkx
这将在您的python中安装一个预编译版本的retworkx。 环境。
但是,如果没有为您的 系统你必须编译代码。源包也发布在 所以您也可以运行上面的命令来安装它。但是,有2个 先决条件是,首先您需要每晚拥有cargo/rustc。 在你的路上。您可以使用rustup来简化此步骤。其次,你 需要在python环境中安装setuptools-rust。这个罐头 只需运行即可完成:
pip install setuptools-rust
运行前:
pip install retworkx
如果您每晚都安装了rust,pip将为您的 本地系统,它应该像预构建的二进制文件一样运行。
从源构建
从源代码构建retworkx的第一步是使用以下命令在本地克隆它:
git clone https://github.com/mtreinish/retworkx.git
retworkx使用PyO3和setuptools-rust来构建python接口。 不幸的是,这意味着您需要使用夜间生锈,因为PYO3只起作用 就在这个时候。你可以用rustup来安装铁锈。
一旦你每晚都安装了铁锈和货物,你可以很容易地安装retworkx 使用pip进入python环境。一旦你有了回购协议的本地克隆 您可以使用以下命令将retworkx安装到python env中:
pip install .
假设您当前的工作目录是repo的根目录。否则 您可以运行:
pip install $PATH_TO_REPO_ROOT
安装方法相同。然后在本地python中使用retworkx 环境。不过,做这件事有两件事要注意,首先 尝试使用此方法从repo根目录运行python它不会像您这样工作 期待。由于本地python,repo根目录中存在名称冲突 用于构建包的包垫片。只需运行python脚本或 在repo根目录外使用retworkx的程序。第二个问题是 您对锈代码所做的本地更改不会反映在 python您需要通过重新运行pip install来重新编译源代码 python环境中反映的更改。
使用retworkx
一旦安装了retworkx,就可以通过导入retworkx来使用它。全部 函数和pydag类不在包的根目录下。例如, 构建一个DAG并添加两个节点(它们之间有一条边)将是:
import retworkx my_dag = retworkx.PyDAG() # add_node(), add_child(), and add_parent() return the node index # The sole argument here can be any python object root_node = my_dag.add_node("MyRoot") # The second and third arguments can be any python object my_dag.add_child(root_node, "AChild", ["EdgeData"])