1.安装准备及文件处理:https://www.cnblogs.com/yqbaowo/p/18043628 写的非常详细(要非常仔细的看,不要搞错64x和32x),要是按照这位博主的方案能正确编译,就不用看后面的内容了(但我失败了,折磨了我一整天)。
2.遇到问题处理:windwos 安装 pysqlcipher3-CSDN博客 文中列举了如何解决各种报错,我就是按照1中的方法之后遇到了报错,按照这个文中的方法解决的(千万要看评论!)。
第一个报错是 failed with exit code 2 按照2中博主的解决方法可以顺利解决:将pysqlcipher3\src\python3路径下(如下图),所有.c结尾的文件都打开检查一下,将所有包含MODULE_NAME 均替换成 "pysqlcipher3.dbapi2",千万注意!需要加上字符串引号(感谢评论区的好心人) 。
第二个报错是在解决第一个报错后出现的,不过也是2中文中提到的报错 - LNK1181: 无法打开输入文件“libeay32.lib”。但按照文中的2个方法我都没解决成功。打开了查看了pysqlcipher3下的setup.py文件,应该是读取路径问题,直接修改就可以了(直接打开setup.py文件,将这部分代码替换掉):
if sys.platform == "win32":
# Try to locate openssl
openssl_conf = os.environ.get('OPENSSL_CONF')
if not openssl_conf:
error_message = 'Fatal error: OpenSSL could not be detected!'
raise RuntimeError(error_message)
openssl = os.path.dirname(os.path.dirname(openssl_conf))
openssl_lib_path = "C:\\Program Files\\OpenSSL-Win64\\lib" # 64位OpenSSL库的正确路径
# Configure the compiler
ext.include_dirs.append(os.path.join(openssl, "include"))
ext.define_macros.append(("inline", "__inline"))
# Here is where you should set the libpath
libpath = os.path.join(openssl_lib_path, "libcrypto.lib")
# Configure the linker
ext.extra_link_args.append(libpath)
# ext.extra_link_args.append("libeay32.lib")
# ext.extra_link_args.append('/LIBPATH:' + openssl_lib_path)
else:
ext.extra_link_args.append("-lcrypto")
build_ext.build_extension(self, ext)