解释Crypto模块怎么就这么"皮"?No module named "Crypto"

Posted php-linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解释Crypto模块怎么就这么"皮"?No module named "Crypto"相关的知识,希望对你有一定的参考价值。

 

python版本:python3.6,系统:win7

1.pip install crypto;

会安装很多包:chardet, certifi, urllib3, idna, requests, pyyaml, Naked, shellescape, crypto

2.安装成功后,提示没有该模块,那就去python3的安装目录..Lib/site-package中查看是否有Crypto文件夹

这时你会看到有crypto文件夹,将其重命名为Crypto即可;

3.又出现另一个提示说没有Crypto.Cipher,“ModuleNotFoundError:No module named ‘Crypto.Cipher’”;这时需要卸载pycrypto:

pip uninstall pycrypto,然后安装pycryptodome,pip install pycryptodome,即可。

  这是我把我的windows环境弄乱了,才会用上面这种解决办法。真正的解决办法是下面这个,我这么操作了一下:

1
2
3
4
pip uninstall crypto pycryptodome
pip install pycryptodome
你会发现site-packages下的该模块的目录名已经是大写了-Crypto
但是pycharm不识别这个模块,造成了很多不便

  在python中想要使用crypto相关的库,网上的解决方法一大片,但是大多都是废话,能用的没有几个,而且能安装的没有几个。

首先我告诉大家为什么不能安装,其次告诉一种真正的方法。

python版本:python3.6,系统:win7;目的:crypto安装

1.pycrypto、pycrytodome和crypto是一个东西,crypto在python上面的名字是pycrypto,它是一个第三方库,但是已经停止更新三年了,所以不建议安装这个库;

2.windows下python3.6安装也不会成功!

这个时候pycryptodome就来了,它是pycrypto的延伸版本,用法和pycrypto是一模一样的;

所以,我现在告诉大家一种解决方法--直接安装:pip install pycryptodome

3.但是,在使用的时候导入模块是有问题的,这个时候只要修改一个文件夹的名称就可以完美解决这个问题,

PythonPython36Libsite-packages,找到这个路径,下面有一个文件夹叫做crypto,将小写c改成大写C就ok了。

我在我的linux生产环境上,版本是3.6,直接安装pycryptodome,第三方目录下的包直接就是:Crypto、pycryptodome-3.6.6.dist-info,连名字都不用改。

以上是关于解释Crypto模块怎么就这么"皮"?No module named "Crypto"的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.NoClassDefFoundError: javax/crypto/spec/DESedeKeySpec

ModuleNotFoundError:No module named "Crypto"

错误:试图导入 Node 标准库模块“crypto”。它失败了

Crypto模块中的签名算法

如何安装PS磨皮滤镜

解释一下Handle,学这么久了,都没弄明白它什么意思! - VC / MFC -