没有模块名称加密

时间:2019-03-28 09:07:53

标签: python python-3.x pycryptodome

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

  

cmd

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>
  

test.py

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

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

2 个答案:

答案 0 :(得分:1)

文档here中说明了Windows用户针对该问题的

解决方案  它说:

  

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

解决问题:

pip uninstall crypto
pip uninstall pycryptodome
pip install pycryptodome

在此github issue

中可以找到原因的详细说明

更新:
如果文档中引用的解决方案不起作用,则必须将软件包文件夹名称从crypto更改为Crypto。 查找包文件夹所在的位置:

  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开头)

答案 1 :(得分:-1)

我解决了这个问题  实际上,一个类似的命名文件已经存储在python库中,因此首先我将其删除,然后使用pip安装pycrypto