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 的过程中,遇到的问题,如图所示: 
这里写图片描述
或者将 pycrypto-2.6.1.tar.gz 下载下来(https://www.dlitz.net/software/pycrypto/) 将该文件夹解压,然后放到指定的文件夹,比如我这里放在C:\Python36\Lib\site-packages\ 
cmd ,进入到解压的文件夹(C:\Python36\Lib\site-packages) 
使用pip install命令:

pip setup.py install
  • 1

发现仍然报错: 
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 ,发现居然有了,http://download.csdn.net/download/fzwolfcub/10173046 
抱着试一试的心态,忐忑的安装该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 
找到了答案,解决方法是: 
这里写图片描述

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

import winrandom
  • 1

改为

 from . import winrandom 
  • 1

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

from Crypto.PublicKey import RSA 
  • 1

不再报错,如图所示: 
这里写图片描述 
到此为止,遇到的坑,逐一解决。pycrypto 在Python3.6.1 Win10 上安装成功!!! 
激动ing… 
接下来,开始python rsa 公钥加密解密的脚本编写了~~ 但愿顺利~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值