windows下安装pysqlcipher模块

macos和linux安装方法很简单,执行:

pip install pysqlcipher

很容易就能安装上,但是在windows下面,就不一样了,首先我们在控制台执行上面的命令:

pip install pysqlcipher

然后会发现如下报错:
这里写图片描述

错误提示:Fatal error: OpenSSL could not be detected!

1,安装OpenSSL

是的,缺少openssl,那我们去官网下载,地址如下:http://openssl.org/source/ ,我下载的版本是0.9.8
下载回来的是源码,需要安装vc编译,编译步骤百度吧,很多,就不在这里描述了。
编译好之后会在openssl目录生成lib及dll二进制文件,备用。

2,安装vc++ compiler for python2.7

地址:http://aka.ms/vcpython27
必须安装,否则安装会报错要求你去下载。

3,查看安装脚本

虽然openssl已经生成,但是怎么让pysqlcipher的检测到呢?这里只能去看他的源码了。源码在github上。
然后我们打开根目录下的setup.py文件。
在第185行,我们看到:
这里写图片描述

openssl_conf = os.environ.get('OPENSSL_CONF')

是的,安装脚本通过环境变量OPENSSL_CONF来读取openssl位置。
继续往后看,会看到:

ext.include_dirs.append(os.path.join(openssl, "include"))
    .
    .
    .
ext.extra_link_args.append("libeay32.lib") 
ext.extra_link_args.append( 
    "/LIBPATH:" + os.path.join(openssl, "lib") 
) 

于是,我们知道头文件应该放在OPENSSL_CONF/include下,lib及dll文件应该放在OPENSSL_CONF/lib下。
那我们随便找一个目录,比如“c:\openssl”,然后将openssl下面的include文件夹拷贝到c:\openssl下,将libeay.lib和libeay.dll拷贝到c:\openssl\lib下。

然后设置环境变量OPENSSL_CONF=c:\openssl\include\ 注意,最后一定要有”\”。

这里吐槽一下他的安装脚本。他有一行代码是这样的:
openssl = os.path.dirname(os.path.dirname(openssl_conf)) 
这就意味着,如果你不在最后加一个'\',那openssl变量的值就等于'c:\'而不是'c:\openssl',然后他就会认为include文件在'c:\include'下,二进制文件在'c:\lib'下,然后安装就会报错,擦,就不能好好写吗。。。。

或者直接在命令行下执行:

set OPENSSL_CONF=c:\openssl\include\

第二种方式只在当前会话中生效,关了控制台,就不存在了。
设置好环境变量后,我们重新执行:

pip install pysqlcipher

提示:Successfully installed pysqlcipher-2.6.4
大功告成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值