安装与环境配置
适用版本 · ArcQML 0.1.0
本页目录
2.1 发行目录
以下路径均以用户取得的 ArcQML 发行目录为基准,将示例中的 PATH_TO_YOUR_FILES 替换为实际存放发行包的目录,并保持发行包内部的相对目录结构不变。
PATH_TO_YOUR_FILES/ArcQML/
├── crates/ # Rust 接口及配套功能
├── libs/
│ ├── x86_64-pc-windows-msvc/
│ │ └── arcqml_runtime_private.lib
│ └── x86_64-unknown-linux-gnu/
│ └── libarcqml_runtime_private.a
├── wheels/
│ └── arcqml-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
├── examples/ # 完整示例
├── docs/ # 技术手册、API 文档与教程
├── Cargo.toml
└── LICENSE-RUNTIME
libs 中的二进制库必须与操作系统和 CPU 架构匹配,不应改名或与其他 ArcQML 版本混用。当前发行包提供 Windows x86_64 MSVC 与 Linux x86_64 GNU 两种 Rust Runtime。wheels 中的文件名表明当前 Python 包只适用于 CPython 3.11、Linux x86_64;该 wheel 不能直接安装到 Windows、macOS、ARM Linux 或其他 Python 版本。
兼容其它操作系统及环境的版本即将发布。
2.2 Rust 环境与 Runtime 配置
Rust 接口要求 Rust 1.85 或更高版本,并使用 Rust 2024 edition。Windows 用户可按照 Rust 官方安装页 安装 rustup,安装时保留默认的 MSVC toolchain;Linux 用户可使用官网提供的安装命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装后执行 rustc --version 和 cargo --version 确认命令可用。然后进入发行包根目录,将环境变量 ARCQML_RUNTIME_LIB_DIR 指向与当前平台匹配的 libs 子目录。该变量用于链接预编译 Runtime。
Windows PowerShell:
Set-Location "PATH_TO_YOUR_FILES\ArcQML"
$env:ARCQML_RUNTIME_LIB_DIR = (Resolve-Path ".\libs\x86_64-pc-windows-msvc").Path
cargo check -p arcqml
Linux:
cd PATH_TO_YOUR_FILES/ArcQML
export ARCQML_RUNTIME_LIB_DIR="$PWD/libs/x86_64-unknown-linux-gnu"
cargo check -p arcqml
环境变量只对当前终端会话生效;打开新终端后需要重新设置。用户自己的 Rust 项目可以通过路径依赖引用发行包中的接口:
[dependencies]
arcqml = { path = "PATH_TO_YOUR_FILES/ArcQML/crates/arcqml" }
运行该项目时同样需要先设置 ARCQML_RUNTIME_LIB_DIR。如果复制或移动发行包,应同步更新依赖路径与 Runtime 路径。
2.3 Python 环境与 wheel 安装
当前 Python wheel 适用于 Linux x86_64 和 CPython 3.11。建议使用独立 Conda 环境,避免现有环境中的 Python 或 NumPy 版本影响安装。以下命令均在 ArcQML 发行包根目录执行:
cd PATH_TO_YOUR_FILES/ArcQML
conda create -n arcqml-example python=3.11 -y
conda activate arcqml-example
python -m pip install --upgrade pip
python -m pip install ./wheels/arcqml-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
wheel 已静态嵌入与其版本匹配的 ArcQML Runtime,因此 Python 用户不需要设置 ARCQML_RUNTIME_LIB_DIR,也不需要安装 Rust、Maturin 或从源码编译扩展。可用 python -c "import arcqml; print(arcqml)" 验证导入是否成功。若 pip 报告 wheel 与平台不兼容,应先核对 python --version、python -c "import platform; print(platform.machine())" 与操作系统。
2.4 一次可训练前向与反向的数据流
Circuit.parameters()
│ 参数值在执行时绑定到 Gate
▼
(Batch)StateVectorSimulator.run(circuit, observable)
│ 接口层校验并绑定参数,预编译 Runtime 执行状态演化与期望值计算
▼
F64 标量或 [B] F64 Tensor
│ 与普通 Tensor loss 组成统一自动微分图
▼
loss.backward()
│ 经典 VJP → Runtime 量子伴随计算 → Parameter.grad
▼
optimizer.step(circuit.parameters())
整条量子电路作为自定义 Tensor 操作接入自动微分图。公开接口层负责参数与形状校验、计算图连接和优化器更新;闭源 Runtime 负责状态向量数值内核、可观测量计算与量子伴随反向。run 的父节点包含可微初态与所有电路参数,因此,外部损失函数无须了解量子门内部执行过程,量子期望值也能继续参与经典可微计算。