PAYATHON 2026

如何解决 pint.PintArray 属性不存在的错误?

数据阿明

结论

报错表示当前导入的 pint 模块没有 PintArray 属性。PintArray 是 pint-pandas 提供的集成接口,应从 pint_pandas 访问。单独导入 pint 不会让这个属性出现在 pint 命名空间中。

问题中的代码已导入 pint_pandas,但第 23 行仍使用了 pint.PintArray:

PA_ = pint.PintArray

可以改为:

PA_ = pint_pandas.PintArray

检查实际导入的模块

报错堆栈指向 c:\Users\{snip}\pint.py。如果这是你自己的脚本路径,而不是已安装的 Pint 包路径,名为 pint.py 的文件可能遮蔽了真正的 pint 包。可以打印模块路径确认:

import pint
import pint_pandas

print(pint.__file__)
print(pint_pandas.__file__)
print(hasattr(pint_pandas, "PintArray"))

如果 pint.__file__ 指向项目目录中的 pint.py,请将脚本改名,例如 pint_demo.py,并删除同目录下对应的 __pycache__ 缓存后重新运行。如果路径指向已安装的包,再检查 pint_pandas 是否提供 PintArray。

核对示例与安装版本

参考示例来自 Pint 0.10.1 文档,报错环境则使用 Pint 0.25.2 和 pint-pandas 0.7.1。由于文档示例与当前安装版本不同,其中的导入写法可能不适用;仅凭版本号无法判断具体兼容性。可以先查看当前 pint_pandas 提供的对象:

print(pint.__version__)
print(pint_pandas.__version__)
print(hasattr(pint_pandas, "PintArray"))

如果最后一行输出 False,请根据当前安装版本对应的 pint-pandas 文档核对数组类的用法,不要将 PintArray 当作 pint 的属性访问。

备注:内容仅供参考。