Traceback (most recent call last):
File "e:/python/scripts/airconditioner_01.py", line 4, in <module>
from skimage.metrics import structural_similarity as ssim
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\skimage\metrics\__init__.py", line 1, in <module>
from ._adapted_rand_error import adapted_rand_error
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\skimage\metrics\_adapted_rand_error.py", line 2, in <module>
from ._contingency_table import contingency_table
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\skimage\metrics\_contingency_table.py", line 1, in <module>
import scipy.sparse as sparse
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\__init__.py", line 229, in <module>
from .base import *
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\base.py", line 8, in <module>
from .sputils import (isdense, isscalarlike, isintlike,
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\sputils.py", line 17, in <module>
supported_dtypes = [np.typeDict[x] for x in supported_dtypes]
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\scipy\sparse\sputils.py", line 17, in <listcomp>
supported_dtypes = [np.typeDict[x] for x in supported_dtypes]
File "C:\Users\admin\.conda\envs\sdm\lib\site-packages\numpy\__init__.py", line 320, in __getattr__
raise AttributeError("module {!r} has no attribute "
AttributeError: module 'numpy' has no attribute 'typeDict'
使用原有代码,原来的环境,发现竟报错,大抵是后来环境发生了变化。
根据提示,是numpy的原因:
这个错误是由于在你的代码中导入的
scipy
库中的sparse
模块中使用了numpy
中不存在的typeDict
属性引起的。在较新的
numpy
版本中,typeDict
属性已经被移除了。这个属性在旧版本的numpy
中用于将字符串类型映射到相应的numpy
数据类型。在较新的版本中,可以使用numpy.dtype
函数来实现类似的功能。要解决这个问题,你可以尝试以下几个方法:
升级你的
numpy
和scipy
库到最新版本,以确保你使用的是兼容的版本。检查你的代码中是否有其他地方使用了旧版本的
numpy
特性,如果有的话,可以尝试更新这些部分的代码以适应新版本的numpy
。如果你的代码中没有直接使用
numpy
的typeDict
属性的地方,那么可能是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进行备份,轻松方便。