在Algokit项目中运行合约脚本时遭遇Numpy AttributeError错误
解决Algokit合约脚本运行时numpy版本兼容错误
问题说明
使用numpy==2.0.0和algopy==0.6.1运行Algokit合约脚本时,触发如下错误:
File "C:\Users\LocalUser\algo\.venv\Lib\site-packages\algopy\__init__.py", line 72, in <module> warnings.simplefilter("ignore", numpy.ComplexWarning) ^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'numpy' has no attribute 'ComplexWarning'
原因是numpy 2.0.0移除了ComplexWarning类,但algopy 0.6.1的源码仍在引用这个已被删除的属性。
解决方案
方案1:降级numpy到兼容版本(推荐)
algopy 0.6.1未适配numpy 2.0.0,将numpy降级到1.x系列的稳定版本即可解决问题,执行以下命令:
pip install numpy==1.26.4
方案2:临时修改algopy源码(不推荐)
如果无法降级numpy,可手动修改algopy的初始化文件:
- 找到路径
C:\Users\LocalUser\algo\.venv\Lib\site-packages\algopy\__init__.py - 定位到第72行,将代码:
替换为:warnings.simplefilter("ignore", numpy.ComplexWarning)
注意:此方法会忽略所有UserWarning类型的警告,可能掩盖其他潜在问题,仅作为临时应急方案。warnings.simplefilter("ignore", UserWarning)
内容的提问来源于stack exchange,提问作者Keven Boudreau
相关产品推荐
相关产品推荐

