纪念我的bug之win10下Python3.6.5使用pycrypto的痛苦之旅

首先说明一下,Crypto模块的目的是为了提供通用的加密和哈希算法。遇到这个问题是因为集成别人的代码时遇到版本不一致所导致的。在他的Python环境中直接导入pycrypto包没有问题的,而我环境下无法安装这个包,原因如下:

windows下python3.6安装pycryto or crypto or pycryptodome与使用

对,上面链接的这位兄台讲的很清晰:

pycrypto,pycrytodome和crypto是一个东西,在很久以前,crypto在python上面的名字是pycrypto它是一个第三方库,但是已经停止更新三年了,所以不建议安装这个库;windows下python3.6安装也不会成功!这个时候pycryptodome就来了,它是pycrypto的延伸版本,用法和pycrypto 是一模一样的;

重点:
直接pip install pycryptodome
successfully.........................................................................................................
但是,在使用的时候导包是有问题的,这个时候只要修改一个文件夹的名称就可以完美解决这个问题,beautiful !!!!!
\....\Python\Python36\Lib\site-packages
找到这个路径,下面有一个文件夹叫做crypto,将c改成C,对就是改成大写就ok了!!!

作者:枫桥希望
链接:https://www.jianshu.com/p/dc63cdebee70
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

我安装pycryptodome后发现,Crypto 已经是大写C了,代码运行确实成功了,可是我打包成exe可执行文件时一直不成功。虽然没有解决问题,但是还是标明出处,毕竟是兄台的知识财产!!!

在打包的过程中也没有报错,一切正常,但是exe 就是没法执行(如果工程中存在资源文件的,要先检查资源文件是否在exe所在路径相符)不知道什么原因怎么办呢?

于我就用了这种打包方法,这种方式可以使用控制台,无窗口(但其实一闪而过,看不清错误信息)于是,就得自己打开cmd

这样运行就会显示错误信息,

python安装pycrypto包步骤及语法错误处理

安装pycryptodome库还是没法解决问题,但是安装安装pycrypto又不成功,报错,接下来全程使用上面链接的这个方法一,竟然出乎意外的,安装pycrypto在3.6.5这个版本上装成功了!

同样使用上述打包方式,用控制台执行,显示运行结果,接下来bug又出现了No module named 'winrandom' when using pycrypto

https://stackoverflow.com/questions/24804829/no-module-named-winrandom-when-using-pycrypto

别人花了两天才解决,幸运的我,走在前人填过的坑上,没错解决方法很简单,如下:

就是在\..\python3.6.5\Lib\site-packages\Crypto\Random\OSRNG   中nt.py文件里面改一句就可以了!

Problem is solved by editing string in crypto\Random\OSRNG\nt.py:

import winrandom

to

from . import winrandom

 至此我的问题已经全部解决。感谢前人填的坑,突然觉得程序猿真的很无私!!!还有曾经有位大佬告诉我,遇到bug一定要去看对应bug下面留言有Thank You Very Much! 的帖子和方法,哈哈哈,这一刻真正的理解了这句话!

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值