如何解决无法找到'SHAd256'的问题

from Crypto.Cipher import AES
from Crypto.Random import Fortuna
发生异常: ModuleNotFoundError
No module named 'SHAd256'
  File "D:\...\aes_ccm.py", line 2, in <module>
    from Crypto.Random import Fortuna
ModuleNotFoundError: No module named 'SHAd256'

【以下回答由 GPT 生成】

解决办法:
1. 首先,这个错误是由于找不到'SHAd256'模块造成的,我们可以通过安装'Cryptography'模块来解决。 2. 打开终端或命令提示符,并输入以下命令安装'Cryptography'模块:

pip install cryptography
  1. 如果你的Python环境使用了虚拟环境,请确保你在正确的虚拟环境中运行该命令。
  2. 安装完成后,使用以下代码确认'Cryptography'模块是否正常导入:
from Crypto.Cipher import AES
from Crypto.Random import Fortuna

如果没有抛出异常,说明问题已经解决。

请注意,Crypto模块和Cryptography模块是两个不同的模块,可能会导致命名冲突。确保你正在使用的是正确的模块。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

已解决
我造成该情况的原因是python版本和代码所需对应的版本不匹配,可以去pyprojcet.toml中查看所需相应包的版本号
如:

[tool.flit.metadata.requires-extra]
test = [
    "pytest >=6.2.4,<7.0.0",
    "pytest-cov >=2.12.0,<4.0.0",
    "mypy ==0.910",
    "flake8 >=3.8.3,<4.0.0",
    "black == 22.3.0",
    "isort >=5.0.6,<6.0.0",
    "requests >=2.24.0,<3.0.0",
    "httpx >=0.14.0,<0.19.0",
    "email_validator >=1.1.1,<2.0.0",
    "sqlalchemy >=1.3.18,<1.5.0",
    "peewee >=3.13.3,<4.0.0",
    "databases[sqlite] >=0.3.2,<0.6.0",
    "orjson >=3.2.1,<4.0.0",
    "ujson >=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0",
    "python-multipart >=0.0.5,<0.0.6",
    "flask >=1.1.2,<3.0.0",
    "anyio[trio] >=3.2.1,<4.0.0",

可使用anaconda切换python版本

  • 模块加载错误, Fortuna对SHAd256有引用,而您的Python环境中却没有SHAd256。请您pip install SHAdw56后再试试看