无法从numpy导入float:abydos 0.5.0兼容问题解决方案咨询
解决Abydos 0.5.0与新版Numpy的导入冲突问题
你遇到的是Abydos 0.5.0中_aline.py文件的旧写法与新版Numpy不兼容的问题——该文件第25行用了from numpy import float as np_float,但新版Numpy已经移除了直接导入float的方式,导致抛出ImportError: cannot import name 'float' from 'numpy'错误。下面是几个不用降级Numpy的解决办法:
直接修改Abydos源码文件
找到Python环境里Abydos的安装路径(比如/usr/local/lib/python3.10/dist-packages/abydos/distance/_aline.py),打开文件后把第25行代码替换成:np_float = float要是需要严格对应Numpy的浮点类型,也可以写成:
from numpy import float64 as np_float保存后重启程序就能正常运行。
用猴子补丁临时修复
不想改源码的话,就在你项目代码最开头加这段代码,先给Numpy补上float别名再导入Abydos:import numpy as np # 添加别名兼容旧代码 np.float = float # 也可以用Numpy的float64类型 # np.float = np.float64 # 之后再导入需要的Abydos模块 from abydos.distance import ALine提交Issue等官方修复
你可以去Abydos的代码仓库提问题,告诉官方这个兼容性bug,等官方发修复版本。不过这个方法需要等时间,适合不着急的场景。
内容的提问来源于stack exchange,提问作者srswat
相关产品推荐
相关产品推荐

