Win10 Python 3.6.1 安装pycrypto 过程中遇到的坑以及各种解决方法

环境:
Win 10
Python 3.6.1
pycrypto-2.6.1

最近项目的后台接口使用了 RSA非对称加密,需要对接口传参进行公钥加密。本打算按照以前的方法(python 调用class, 开发人员给的rsa 加密解密相关的java code来修改编译生成class)编译过程中,发现行不通。
于是换方向,直接写python rsa公钥加密解密的脚本以供后面使用。
在先前安装Jpype的过程中,就遇到过cl.exe 或者unable to find vcvarsall.bat 的坑,于是心有余悸。 在已经成功安装了VS2015 后,兴致勃勃的使用传统的 pip install pycrypto 的过程中,遇到的问题,如图所示:
Win10 Python 3.6.1 安装pycrypto 过程中遇到的坑以及各种解决方法_第1张图片
或者将 pycrypto-2.6.1.tar.gz 下载下来,并将该文件夹解压,然后放到指定的文件夹,比如我这里放在C:\Python36\Lib\site-packages
cmd ,进入到解压的文件夹(C:\Python36\Lib\site-packages)
使用pip install命令:

pip setup.py install

发现仍然报错:
building ‘Crypto.Random.OSRNG.winrandom‘ extension
error: command cl.exe failed:No such file or directory
于是根据该文作者(http://blog.csdn.net/a624806998/article/details/78596543)叙述的详细方法,一步一步安装vs2015,设置VC的用户环境变量,静静的等待可以安装成功,发现,仍然存在building ‘Crypto.Random.OSRNG.winrandom‘ extension
error: command cl.exe failed:No such file or directory , 这样的问题。
都快要放弃了,试着搜索了python3.6 pycrypto whl ,网上居然有。
抱着试一试的心态,忐忑的安装该whl
cmd进入到 C:\Python36\Scripts 路径,使用pip install 命令
C:\Python36\Scripts>pip3 install pycrypto-2.6.1-cp36-cp36m-win_amd64.whl
出现了期待已久的Successfully installed …
Processing c:\python36\scripts\pycrypto-2.6.1-cp36-cp36m-win_amd64.whl
Installing collected packages: pycrypto
Successfully installed pycrypto-2.6.1

然后打开 Python IDLE,迫不及待
from Crypto.PublicKey import RSA
又报错:
No module named Crypto
搜索了不少资料,都是这么处理的,解决方法如下:
将将C:\Python36\Lib\site-packages目录下的crypto文件夹,重命名为Crypto,再import,就不报错了。
但是却又报了这样的错误:
Traceback (most recent call last):
File “”, line 1, in
File “C:\Python36\lib\site-packages\Crypto\PublicKey\RSA.py”, line 78, in
from Crypto import Random
File “C:\Python36\lib\site-packages\Crypto\Random_init_.py”, line 28, in
from Crypto.Random import OSRNG
File “C:\Python36\lib\site-packages\Crypto\Random\OSRNG_init_.py”, line 34, in
from Crypto.Random.OSRNG.nt import new
File “C:\Python36\lib\site-packages\Crypto\Random\OSRNG\nt.py”, line 28, in
import winrandom
ModuleNotFoundError: No module named 'winrandom’
第一反应,直接使用pip install winrandom ,发现无效,
于是再次在 https://stackoverflow.com/questions/24804829/no-module-named-winrandom-when-using-pycrypto
找到了答案,解决方法是:
Win10 Python 3.6.1 安装pycrypto 过程中遇到的坑以及各种解决方法_第2张图片

即:
C:\Python36\Lib\site-packages\Crypto\Random\OSRNG\nt.py 中的

import winrandom

改为

 from . import winrandom 

然后,再次打开Python IDLE,输入

from Crypto.PublicKey import RSA 

不再报错,如图所示:
Win10 Python 3.6.1 安装pycrypto 过程中遇到的坑以及各种解决方法_第3张图片
到此为止,遇到的坑,逐一解决。pycrypto 在Python3.6.1 Win10 上安装成功!!!
激动ing…
接下来,开始python rsa 公钥加密解密的脚本编写了~~ 但愿顺利~

参考:
http://blog.csdn.net/a624806998/article/details/78596543
http://blog.csdn.net/DongGeGe214/article/details/77150905
https://stackoverflow.com/questions/24804829/no-module-named-winrandom-when-using-pycrypto

吐槽:新版的CSDN 使用起来很不流畅,看起来粗放,没有旧版看起来顺眼。并且在上传图片的时候,多次上传不成功,还不给提示,用户体验很不好!!

                            

更多测试交流,可以加好友

这里写图片描述

你可能感兴趣的:(加密技术)