首页 > 解决方案 > 否 模块名称 Crypto

问题描述

我正在尝试在我的 python 程序中导入 Crypto,但出现错误。我在窗户上工作。请帮忙。

命令

C:\Users\Raw.306498\Desktop>pip3 install --upgrade pycryptodome
Requirement already up-to-date: pycryptodome in c:\users\raw.306498\appdata\lo
cal\programs\python\python37\lib\site-packages (3.8.0)

C:\Users\Raw.306498\Desktop>python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    from Crypto.Cipher import DES
ModuleNotFoundError: No module named 'Crypto'

C:\Users\Raw.306498\Desktop>

测试.py

from Crypto.Util.asn1 import DerBitString
from binascii import hexlify, unhexlify

passw=b'21566572697461733131'
s = unhexlify(passw)
cred=str(s,'ascii')

标签: pythonpython-3.xpycryptodome

解决方案


此处的文档中解释了针对 Windows 用户的此问题的解决方案 ,它说:

根本原因是,在过去,您很可能安装了一个不相关但名称相似的名为 crypto 的包,它恰好在命名空间 crypto 下运行

解决问题:

pip uninstall crypto
pip uninstall pycryptodome
pip install pycryptodome

可以在这个github 问题中看到对原因的更多详细说明

更新:
如果文档中引用的解决方案不起作用,您必须将包文件夹名称从更改cryptoCrypto. 查找包文件夹所在的位置:

  1. 通过以下命令找出您的 python 可执行文件所在的位置:where python.
    输出应如下所示:
    C:\Users\_YourUserName_\AppData\Local\Programs\Python\Python37-32\python.exe
  2. 现在将 cmd 中的目录更改为包含 python 的文件夹:
    cd C:\Users\_YourUserName_\AppData\Local\Programs\Python\Python37-32\
  3. 运行这些:

    cd .. cd cd Lib\site-packages

  4. 在此目录中打开资源管理器:
    explorer .
  5. 在打开的资源管理器中,您可以看到一个名为:crypto的文件夹,将其重命名为Crypto。(第二个以大写 C 开头)

推荐阅读