• 1
  • 1
分享
  • 【原创】Python3.4 安装 pycrypto 提示错误的处理办法
  • sylan215 2019-03-18 17:09:36 字数 1296 阅读 1466 收藏 1

今天做接口测试,有个接口的参数使用了 AES 加密,开发也提供了加密函数的实现,但是 Python2.6 实现的,我习惯使用的是 Python3.4,于是准备做下兼容处理,结果过程中发现安装 pycrypto 库会报错。
作为测试,定位问题并解决问题乃是我们的强项,于是花了点时间把问题处理了,顺便把解决的结果做个记录,如果后面有同学碰到同样的问题,也不用重复踩坑了。
先看看我安装库用的命令行:

python34 -m pip install pycrypto

下面是报错信息:

running build_ext
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Random.OSRNG.winrandom' extension
error: Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows SDK 7.1": www.microsoft.com/download/details.aspx?id=8279

从报错信息看,就是缺少依赖库文件,确实,我机器上安装的是 VS2008,因为用的少一直没更新,但是提示的是需要 VS2010 支持,总不能因为装一个库,我就去装一个大得多的 VS2010 吧,所以:

方法一:安装 VS2010,然后设置环境变量

先放弃,实在找不到方法再说。
继续 Google 发现有同学提供了新的方案:

方法二:卸载 crypto 库后重新安装 pycrypto

根据要求依次执行如下命令行:

python34 -m pip uninstall crypto
python34 -m pip install pycrypto

错误依旧,报错信息也是一字没改,方法无效
继续看其他方案:

方法三:升级下 setuptools

我也没搞定这个和问题有啥关系,但是升级下也没坏处,升,依次执行如下命令行:

python34 -m pip install --upgrade setuptools
python34 -m pip install pycrypto

错误依旧,报错信息也是一字没改,方法无效
眼瞅着要回头去找 VS2010 安装包了,突然发现有人找到了这个库编译好的 exe 安装包,赞,果然还是那句话「有需求的地方,就有人出实现」,就看你能不能找得到了。

方法四:安装 pycrypto 编译好的 exe 安装包

安装包地址:
http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py3.4.exe
亲测有效,问题解决。
另外,记得到 Python 安装目录下 \Lib\site-packages 去看下,如果 crypto 是全小写就改成 Crypto,不然引入会报错。
附上引入代码:
from Crypto.Cipher import AES

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   首先我们来看看什么是软件性能?  软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。 表明了软件系统对时间及时性及资源经济性的要求。对于一个软件系统,运行时执行速度越快、占用系统存储资源及其他资源越少,则软件性能越好。软件性能是衡量事情完成效果的一个重要因素。  再看看性能测试的定义?  狭义的软件性能测试指为验证软件性能指标、评估系统服务能力、推荐系统软硬件配置、完成系统性能优化等而开展的测试活动;  广义的软件性能测试指在测试过程中需要相关性能测试方法配合完成的系统测试活动,包括可靠性测试、可恢复性测试、稳定性测试、兼容性测试...
            0 0 1855
            分享
          • 在之前的文章和视频中,我分享过Groovy语法中def关键字的基本使用方法。当时对def理解是:不定类型变量,资料中也有说是无类型变量,感觉两个意思大差不差,就是不显式声明对象类型。基本使用方式如下:def a = 1def b = "FunTester"类似这样的方式,当时Java新版也已经支持了var可以替代一些显式声明变量类型的代码,但是除了使用范围上,Groovy的def还是明显优于var,而且功能上也是强不少(当然有人理解为弱不少,后续讲解)。本质区别在于Groovy的def不仅可以替代显式的类型声明,还...
            0 0 926
            分享
          • 一、什么是HttpUnitHttpUnit是基于JUnit构建的一个开源的测试框架,专门针对Web应用的测试,用于解决使用JUnit框架无法对远程Web内容进行测试的问题。二、工作原理HttpUnit通过模拟浏览器的行为,包括提交表单(form)、处理页面框架(frames)、基本的http验证、cookies以及页面跳转(redirects)处理等,进行Web应用程序的测试。通过HttpUnit提供的功能,用户可以方便地与服务器端进行信息的交互,将返回的网页内容作为普通文本、XML Dom对象或者是作为链接、页面框架、图像、表单、表格等的集合进行处理,然后使用Junit框架进行测试,还可以导...
            0 0 2182
            分享
          • 一.什么是接口软件接口二.流程 接口测试属于专项需求–>计划–>用例设计–>执行–>报告接口文档–>用例设计–>执行用例(bug)–>专项报告没有接口文档,如何做接口测试?Fiddler三:接口文档接口名称:表明接口作用接口地址:URL HTTP/HTTPS请求方式:post/get请求参数:必填项,选填项的测试说明了选填参数的相应情况,那么也要设计用例进行覆盖性别:男/女 苏三返回格式:xml/json返回参数:预期结果,比对四.测试用例覆盖所有参数,正向用例覆盖所有必填参数,正向用例某一必填参数为空,逆向用例 空=空格? 空格的位置:前,后,中,n...
            0 0 1260
            分享
          •   纵观软件测试行业的发展史,相信很多人都知道它是伴随着“软件”而出现的。  在早期软件开发的过程中,“测试”的含义其实是比较狭窄的,测试这一行为也完全由开发人员执行,几乎等同于“调试”工作。  到了上世纪80年代,IT行业得到了大力的发展,“软件”也趋向于大型化、高复杂度,这个时候“软件测试”才逐渐形成了自己的理论基础和实用技术。  从上世纪90年代开始,软件行业的发展形势可谓迅猛。随着软件行业规模变大,“软件测试”活动也变得需要更多的时间和成本了。  又经过20年的持续发展,“软件测试”行业已经有了自己的行业标准(IEEE/ANSI ),也经历了手工测试到自动化测试的技术变革,更是形成了自...
            0 1 1098
            分享
      • 51testing软件测试圈微信