admin 管理员组文章数量: 887017
macos和linux安装方法很简单,执行:
pip install pysqlcipher
很容易就能安装上,但是在windows下面,就不一样了,首先我们在控制台执行上面的命令:
pip install pysqlcipher
然后会发现如下报错:
错误提示:Fatal error: OpenSSL could not be detected!
1,安装OpenSSL
是的,缺少openssl,那我们去官网下载,地址如下:http://openssl/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
大功告成。
本文标签: 模块 Windows pysqlcipher
版权声明:本文标题:windows下安装pysqlcipher模块 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1727511514h1127239.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论