Python导入urx库报错TypeError: 'type' object is not subscriptable
解决urx库导入时的TypeError问题
问题根源
报错信息里的TypeError: 'type' object is not subscriptable是因为你使用的Python3.8不支持tuple[XXX]这种下标式泛型标注语法,而urx依赖的math3d库新版本中使用了该语法(仅Python3.9+原生支持)。
可行解决方案
方案1:降级math3d到兼容Python3.8的版本
执行以下pip命令安装适配版本:
pip install math3d==2.3.1
该版本的math3d未使用Python3.9+专属的类型标注语法,可完美兼容Python3.8。
方案2:升级Python版本至3.9+
如果你的开发环境允许,直接将Python升级到3.9或更高版本,原生支持tuple[XXX]这类泛型标注语法,即可解决该兼容性问题。
方案3:临时修改math3d源码(不推荐)
若前两个方案无法实施,可手动修改math3d的源码:
- 找到路径
C:\Python38\lib\site-packages\math3d\transform.py - 打开文件,定位到第528行,将
ApTs: typing.Union[np.ndarray, tuple[PositionVector]],
修改为:
ApTs: typing.Union[np.ndarray, typing.Tuple[PositionVector]],
- 检查文件顶部是否有
from typing import Tuple,若无则添加该行导入语句。
内容的提问来源于stack exchange,提问作者אגם בן עז</think_never_used_51bce0c785ca2f68081bfa7d91973934>
相关产品推荐
相关产品推荐

