安装
安装包含 Light / Heavy 的 Python wheel,或从源码构建公开算法与数值执行功能。
本页目录
使用前的许可说明
公司有权授权的源码适用 Arclight 非商业源码可用许可证 1.0,禁止商用和闭源集成,不是 OSI 认可的开源许可证。商业使用需另行授权。Light / Heavy 动态库单独许可,源码许可证不授权其分发或使用。第三方依赖及此前已按 MIT / Apache 授出的版本保留各自权利。详见许可证与使用范围及 ArcTN 仓库中的许可正文和第三方及历史授权说明。
环境要求
| 组件 | 最低要求 | 说明 |
|---|---|---|
| Python 安装包 | Python 3.9 或更高版本 · NumPy 1.23 或更高版本 | wheel 必须与 Python 版本、操作系统和 CPU 架构匹配;安装不需要 Rust |
| Rust 源码构建 | Rust 1.82 | 公开算法与 native CPU 执行 |
| Python 源码构建 | Rust 1.83 · Python 3.9 | 通过 PyO3 构建公开扩展 |
| MPI | 系统 MPI + Cargo feature mpi |
启用 mpi feature 并构建 tnmpi 时需要 |
安装 Python 包
以下完整 wheel 安装步骤仅适用于已取得相应授权的内部安装包;公开源码发行及从该源码构建的 wheel 不附带 Light / Heavy 引擎。拿到包含这些编译库的已授权安装包后,在虚拟环境中安装,将下面的路径替换为实际文件路径:
python -m venv .venv
source .venv/bin/activate
python -m pip install /path/to/arctn-版本与平台标记.whl
Windows 的激活命令是 .venv\Scripts\activate。wheel 文件名中的 Python 版本和平台标记由构建过程生成,不要手动修改文件名。
完整 wheel 已包含 Rust CPU 执行器和 Light / Heavy 编译库,导入 arctn 时会自动找到包内的编译库,无需设置库文件路径。安装后可以直接运行快速开始。当前完整安装包仅供内部使用,尚未提供公开下载或 PyPI 发行。
在 Quimb 中使用 ArcTN 时,额外安装前端与树接口依赖:
python -m pip install quimb cotengra opt_einsum
CuPy、PyTorch、JAX 等数组库按所需后端另行安装。
从源码构建 Rust crate
git clone https://github.com/Quill-ArcLight/arctn-public.git
cd arctn-public
cargo build --release --locked
cargo test --locked --test correctness
公开源码包含独立寻路算法、切片和数值执行,但不包含 Light / Heavy 的实现或编译库。仓库目前为私有,克隆需要访问权限。普通单机执行不需要 MPI;--locked 使用仓库中的 Cargo.lock。
从源码构建 Python wheel
cd arctn-public/pybind
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "maturin>=1.9.3,<2.0"
python -m maturin build --release --locked --out target/wheels
python -m pip install --force-reinstall target/wheels/arctn-*.whl
python -c "import arctn; print(arctn.__version__)"
从公开源码生成的 wheel 不附带 Light / Heavy 编译库。执行已有收缩序与网络化简等功能可以独立使用;调用 Light / Heavy 时,还需配置单独提供的兼容编译库。
单独配置 Light / Heavy 编译库
仅在使用源码构建版本、Rust 接口或命令行工具时需要这一步。Linux 示例:
export ARCTN_ENGINE_LIBRARY=/absolute/path/to/libarctn_engine.so
macOS 使用 libarctn_engine.dylib,Windows 使用 arctn_engine.dll。编译库必须匹配操作系统、CPU 架构与接口版本。显式设置 ARCTN_ENGINE_LIBRARY 会优先于 Python 包内的编译库;路径错误会报错,不会自动换用另一份库。
Light / Heavy 动态库单独许可,Arclight 非商业源码可用许可证 1.0 不授权其分发或使用。取得相应授权和兼容编译库后,普通使用者不需要编译它,也不需要修改 preset="light" 或 preset="heavy" 的调用方式。
启用 MPI
cargo build --release --locked --features mpi --bin tnmpi
mpirun -n 4 target/release/tnmpi --help
tnmpi 读取已有收缩序和切片集合,执行切片收缩。--dtype 支持 f32、f64、complex64 和 complex128,默认 f64。用法见 MPI 执行。