Python导入hashes模块hashSHA1、hashSHA256报ImportError如何解决
问题现象
执行如下导入语句时触发ImportError:
from hashes import hashSHA256, hashSHA1
对应报错信息:
ImportError: cannot import name 'hashSHA256' from 'hashes' (C:\Users\A784592\Anaconda3\lib\site-packages\hashes\__init__.py)
排查发现安装路径下的hashes包__init__.py为空,多次执行pip install hashes、卸载重装该包均无法解决问题。
问题原因
你通过pip安装的PyPI源上的hashes包本身就是无对应实现的空壳包,根本没有导出hashSHA256、hashSHA1这两个对象,和你代码里需要引用的哈希模块完全不是同一个东西,反复重装不会解决任何问题。从你贴的代码片段看,你已经安装了cryptography库,你需要的哈希能力本身就来自这个库,不存在单独的hashes依赖包。
修复步骤
- 首先卸载错装的空壳
hashes包,避免包名冲突,执行命令:pip uninstall -y hashes - 从你已经安装的
cryptography库中正确导入哈希相关实现即可,参考写法:from cryptography.hazmat.primitives import hashes # 实例化对应哈希算法对象,对应你原本要导入的两个对象 hashSHA256 = hashes.SHA256() hashSHA1 = hashes.SHA1() - 如果你原本是要引用自己项目中自定义的
hashes.py文件,确认该文件和当前运行的脚本处于同一工作目录下,且文件内确实定义了hashSHA256、hashSHA1两个方法/对象,避免自定义模块名和第三方包名产生冲突。
内容的提问来源于stack exchange,提问作者Khaled
相关产品推荐
相关产品推荐

