You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qiskit Nature中'units'子模块去向及教程适配疑问

问题原因与解决方案

模块去向与重构背景

这确实是Qiskit Chemistry迁移到Qiskit Nature时的架构重构导致的。在Qiskit Nature早期迁移阶段,units模块曾短暂存在,但后续版本(包括你安装的适配Python 3.6的版本)对模块结构做了精简,DistanceUnit这类单位枚举被合并到qiskit_nature.constants模块中,原units模块被移除。

修正后的代码

你可以通过两种方式修正代码:

方法1:导入新位置的DistanceUnit

from qiskit_nature.constants import DistanceUnit
from qiskit_nature.second_q.drivers import PySCFDriver

driver = PySCFDriver(
    atom="H 0 0 0; H 0 0 0.735",
    basis="sto3g",
    charge=0,
    spin=0,
    unit=DistanceUnit.ANGSTROM,
)

方法2:直接使用字符串参数(更简洁)

PySCFDriver的unit参数支持直接传入单位字符串,无需导入枚举:

from qiskit_nature.second_q.drivers import PySCFDriver

driver = PySCFDriver(
    atom="H 0 0 0; H 0 0 0.735",
    basis="sto3g",
    charge=0,
    spin=0,
    unit="angstrom",
)

教程未同步的原因

Qiskit生态版本迭代较快,官方教程的更新有时会滞后于代码的重构。尤其是Qiskit Nature作为从原Qiskit Chemistry拆分出的新模块,初期架构调整频繁,部分旧版本教程没有及时跟进到最新的模块结构。

内容的提问来源于stack exchange,提问作者Tico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:57:03