成功解决Error:AttributeError: module ‘numpy‘ has no attribute ‘long‘.
🌵文章目录🌵
- 🌳引言🌳
- 🌳报错分析🌳
- 🌳解决方案1:降低NumPy版本🌳
- 🌳解决方案2:更改NumPy源码🌳
- 🌳结尾🌳
🌳引言🌳
在Python编程中,NumPy是一个至关重要的库,尤其在进行大规模数值计算时。它提供了许多高效的数学函数和操作,大大简化了计算过程。然而,即使是如此强大的工具,也难免在使用过程中遇到问题。一个常见的问题就是“AttributeError: module ‘numpy’ has no attribute ‘long’”。这个错误信息表明在代码中尝试访问NumPy库中的long
属性时出现了问题。本文将深入探讨这个问题的原因,并提供解决方案。
🌳报错分析🌳
报错截图如下:
从报错信息来看,当前版本的NumPy库已经没有long
属性,因此可行的解决方案是降低numpy版本。
🌳解决方案1:降低NumPy版本🌳
当前NumPy版本如下图所示:
为了满足项目需求,我们需要将当前环境中NumPy的版本从1.25.0降级到一个较旧的版本。
首先,我们可以执行python
指令查看当前的python版本
Python 3.9.1 (default, Dec 11 2020, 09:29:25) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
从运行结果可以看出,当前python版本为3.9.1
。
已知目前环境中的python版本为3.9.1
,下一步就是确定哪些较旧的numpy版本与当前python版本兼容。通过查询🔗Numpy官方文档🔗,可以得到Numpy版本和python版本的对应关系,示例如下:
Numpy版本 | 兼容的Python版本 |
---|---|
1.26.0 | 3.9-3.12 |
1.25.0 | 3.9-3.11 |
1.24.0 | 3.8-3.11 |
1.23.0 | 3.8-3.10 |
1.22.0 | 3.8-3.10 |
1.21.0 | 3.7-3.9 |
从表格可以看出,我们可将Numpy版本降低⬇️到1.21.0
即可。命令如下:
# 卸载当前NumPy版本
pip uninstall numpy
# 安装指定版本的NumPy
pip install numpy==1.21.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
在处理NumPy库中缺少float属性的问题时,一些开发者可能会选择降低Numpy的版本以寻求解决方案。然而,这种做法背后潜藏着危机。关键的是,许多重要的第三方库(如opencv)对NumPy的版本有特定的要求。为了修复一个小错误而轻率地卸载当前版本的NumPy库,可能会引发一系列的运行时问题。新安装的NumPy版本可能与那些依赖特定NumPy版本的第三方库存在兼容性问题,这无疑增加了系统出现故障的风险。
🌳解决方案2:更改NumPy源码🌳
基于提供的错误信息,我们能够准确地找到引发错误的代码段。在深入剖析后,我们发现问题很可能源自图中绿色高亮显示的代码行。只要我们对这行代码进行细致的检查并作出相应的调整,就有很大的机会修复这个问题。
修改后的代码行如下所示:
my_array = np.zeros((224, 224), np.long) # 修改前
my_array = np.zeros((224, 224), int) # 修改后
my_array = np.zeros((224, 224), np.int32) # 修改后
my_array = np.zeros((224, 224), np.int64) # 修改后
我们只需要把np.long
修改成np.int32
或np.int
或np.int64
即可在不更换numpy版本的前提下解决numpy库没有 'long’属性的问题。
参考文章
🌳结尾🌳
亲爱的读者,首先感谢您抽出宝贵的时间来阅读我们的博客。我们真诚地欢迎您留下评论和意见💬。
俗话说,当局者迷,旁观者清。您的客观视角对于我们发现博文的不足、提升内容质量起着不可替代的作用。
如果博文给您带来了些许帮助,那么,希望您能为我们点个免费的赞👍👍/收藏👇👇,您的支持和鼓励👏👏是我们持续创作✍️✍️的动力。
我们会持续努力创作✍️✍️,并不断优化博文质量👨💻👨💻,只为给您带来更佳的阅读体验。
如果您有任何疑问或建议,请随时在评论区留言,我们将竭诚为你解答~
愿我们共同成长🌱🌳,共享智慧的果实🍎🍏!
万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~