降级scikit-image后出现skimage无__version__属性报错如何解决
问题原因
- scikit-image 0.14.2版本的设计本身未将
__version__属性直接暴露在顶层skimage模块下,该顶层属性是0.15及之后版本才统一添加的,属于版本差异问题。 - 你先后混合使用conda、pip安装卸载scikit-image,导致当前conda环境中存在残留的包文件碎片,导入时加载了不完整的模块结构,也会触发该属性报错。
解决方法
- 优先使用适配旧版本的版本查询方式,以下命令任选其一即可:
# 方式1:从子模块导入版本号 from skimage import __version__ print(__version__) # 方式2:直接查询安装包的版本记录(不受模块导入逻辑影响) import pkg_resources print(pkg_resources.get_distribution('scikit-image').version)
如果能正常返回0.14.2,且可以正常导入seam_carve功能,就说明包安装正常,可以直接使用无需额外操作。
- 如果上述查询仍然报错,说明环境残留问题较严重,按以下步骤清理重装即可:
- 第一步:同时用conda和pip清理所有已安装的scikit-image版本
conda remove -y scikit-image pip uninstall -y scikit-image
- 第二步:手动删除残留文件,打开你的环境对应目录
C:\Users\test\miniconda3\envs\skimage14\Lib\site-packages,删除所有名称带skimage、scikit_image前缀的文件夹和.egg-info文件。 - 第三步:重新安装指定版本
pip install scikit-image==0.14.2
- 第四步:验证功能可用性
from skimage.transform import seam_carve # 无报错即说明安装成功
注意:日常使用conda环境时,尽量不要混合使用conda和pip安装同一个工具包,避免出现文件冲突、模块加载异常的问题。
内容的提问来源于stack exchange,提问作者roudan
相关产品推荐
相关产品推荐

