当前位置:   article > 正文

AttributeError: module ‘numpy‘ has no attribute ‘typeDict‘_module 'numpy' has no attribute 'typedict

module 'numpy' has no attribute 'typedict
  1. Traceback (most recent call last):
  2. File "e:/python/scripts/airconditioner_01.py", line 4, in <module>
  3. from skimage.metrics import structural_similarity as ssim
  4. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\skimage\metrics\__init__.py", line 1, in <module>
  5. from ._adapted_rand_error import adapted_rand_error
  6. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\skimage\metrics\_adapted_rand_error.py", line 2, in <module>
  7. from ._contingency_table import contingency_table
  8. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\skimage\metrics\_contingency_table.py", line 1, in <module>
  9. import scipy.sparse as sparse
  10. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\__init__.py", line 229, in <module>
  11. from .base import *
  12. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\base.py", line 8, in <module>
  13. from .sputils import (isdense, isscalarlike, isintlike,
  14. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\sputils.py", line 17, in <module>
  15. supported_dtypes = [np.typeDict[x] for x in supported_dtypes]
  16. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\sputils.py", line 17, in <listcomp>
  17. supported_dtypes = [np.typeDict[x] for x in supported_dtypes]
  18. File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\numpy\__init__.py", line 320, in __getattr__
  19. raise AttributeError("module {!r} has no attribute "
  20. AttributeError: module 'numpy' has no attribute 'typeDict'

使用原有代码,原来的环境,发现竟报错,大抵是后来环境发生了变化。

根据提示,是numpy的原因:

这个错误是由于在你的代码中导入的scipy库中的sparse模块中使用了numpy中不存在的typeDict属性引起的。

在较新的numpy版本中,typeDict属性已经被移除了。这个属性在旧版本的numpy中用于将字符串类型映射到相应的numpy数据类型。在较新的版本中,可以使用numpy.dtype函数来实现类似的功能。

要解决这个问题,你可以尝试以下几个方法:

  1. 升级你的numpyscipy库到最新版本,以确保你使用的是兼容的版本。

  2. 检查你的代码中是否有其他地方使用了旧版本的numpy特性,如果有的话,可以尝试更新这些部分的代码以适应新版本的numpy

  3. 如果你的代码中没有直接使用numpytypeDict属性的地方,那么可能是scikit-image库中的某个模块在使用了旧版本的numpy。你可以尝试更新scikit-image到最新版本,或者在代码中显式指定使用较新版本的numpy

总之,这个问题可能是由于使用不兼容的库版本或者旧版本的特性引起的。确保你的库版本是最新的,并检查代码中是否有使用了旧版本特性的地方。

也就是numpy的版本过旧, 但是根据之前环境的备份,numpy的版本未变。

然后循着调用踪迹,查看skimage(scikit-image),版本也未变,查看scipy,版本发现不同。原scipy为1.10.1版本,当前环境变成了1.4.1。将版本更新为1.10.1,报错消失。

可能是由于之前尝试在此环境安装tensorflow导致有些第三方包版本变了,追悔莫及,哭了,千万不要在pytorch环境安装tensorflow。。。

建议大家时常对环境备份,按照前面的文章“环境迁移”内容生成 environment.yaml或requirements.txt进行备份,轻松方便。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/518920
推荐阅读
相关标签
  

闽ICP备14008679号