首页 > 数据库 >Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10

Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10

时间:2024-08-06 23:27:48浏览次数:15  
标签:10 execute pysqlcipher3 1.2 编译 c1 安装

Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10

本文主要是将直接安装编译后的文件,不一定的成功,但是可以尝试使用,若无法直接安装,请参考编译过程,自行编译安装,编译过程见这里

安装 pysqlcipher3

这里用 32位 举例 因为 64位 安装完全相同,只需要把对应的位数换成 64位 版本即可

32位安装

  1. 下载编译后的源代码,点击前往网盘下载,密码:9vad

  2. 下载后解压,得到pysqlcipher3-1.2.1-py3.8-win32文件夹,CMD下进入文件夹

# 进入文件夹
cd /d F:\pysqlcipher3-1.2.1-py3.8-win32

# 确保 Python 是32位,推荐 3.8.10 x32bit
python .\setup.py install

image

  1. 使用下面的代码测试一下
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@ File        : test.py
@ Version     : V1.0.0
@ Description :
"""
from pysqlcipher3 import dbapi2 as sqlite

conn1 = sqlite.connect("test.db")
c1 = conn1.cursor()
c1.execute("PRAGMA key='123456'")
c1.execute("""create table stocks (date text, trans text, symbol text, qty real, price real)""")
c1.execute("""insert into stocks values ('2006-01-05','BUY','RHAT',100,35.14)""")
conn1.commit()
c1.close()

conn2 = sqlite.connect("test.db")
c2 = conn2.cursor()
c2.execute("PRAGMA key='123456'")
print(c2.execute("""select * from stocks""").fetchall())
c2.close()

可能遇到问题

ImportError: DLL load failed while importing _sqlite3: 找不到指定的模块。
image

解决办法: 安装 32位openssl,由于此编译后源代码使用 Win32 OpenSSL-1_1_1w版本构建,故推荐你也使用此版本,下载地址点击前往网盘下载 提取码:d0ht,安装后再次运行
image

使用 DB.Browser.for.SQLite 3.12.2 查看
image

本文章的原文地址
GitHub主页

标签:10,execute,pysqlcipher3,1.2,编译,c1,安装
From: https://www.cnblogs.com/yqbaowo/p/18346034

相关文章

  • Flink实战(10)-checkpoint容错保证
    0前言程序在Flink集群运行,某个算子因为某些原因出现故障,如何处理在故障恢复后,如何保证数据状态,和故障发生之前的数据状态一致?1什么是checkpoint(检查点)?Checkpoint能生成快照(Snapshot)。若Flink程序崩溃,重新运行程序时可以有选择地从这些快照进行恢复。Checkpoin......
  • 洛谷 P4910题解
    题目大意现在穿T次手串,每根手串的长度分别为不同的n,有木和金两种珠子,相邻两颗珠子必须有一个是金。题目思路分析我们现在设穿到第n个珠子时用金的方案数为f[1][n],用木的方案数为f[0][n]如果第n个珠子为金,那么前一颗珠子是什么都可以,因此f[1][n]=f[1][n-1]+f[0][n-1]而如果......
  • 《LeetCode热题100》---<5.②普通数组篇五道>
    本篇博客讲解LeetCode热题100道普通数组篇中的五道题第三道:轮转数组(中等)第四道:除自身以外数组的乘积(中等)第三道:轮转数组(中等) 方法一:使用额外的数组classSolution{publicvoidrotate(int[]nums,intk){intlen=nums.length;int[]newAr......
  • 匿名内部类day10
    /*匿名内部类:语法定义格式:new抽象类/接口(){//要重写的方法}*/abstractclassDemo1{publicabstractvoidfun1();//publicabstractvoidfun2();}//classXXXextendsDemo1{//@Override//......
  • 接口类型的方法调用,使用匿名内部类day10
    /*接口类型的方法调用,使用匿名内部类匿名内部类:语法定义格式:new抽象类/接口(){//要重写的方法}*/interfaceInter1{voidfun1();}//classInter1ImplimplementsInter1{//@Override//publi......
  • 内部类 day10
    /*内部类:将一个类A定义在一个类B中,这个类A称之为内部类分类:成员内部类:将类定义在一个类中的成员位置上局部内部类:将类定义在一个方法中*/classOuter1{inta1=10;privateinta2=11;publicstaticinta3=12;class......
  • 成员内部类day10
    /*内部类常用的修饰符:static被静态的修饰可以直接通过类名.创建对象newOuter2.Inner1()private私有的需要在创建个方法来访问*///classOuter2{//staticinta1=10;//privatestaticinta2=11;//publicstaticinta3......
  • 权限修饰符 day10
    packagecom.shujia.day10.bao5;/*权限修饰符:publicprotected默认的private同一类中√√√√同一包子类,其他类√√√不同包子类......
  • 类,抽象类,接口作为方法参数类型的传参 day10
    /*形式参数基本类型:引用类型:类:当你看到一个类作为方法参数类型的时候,将来调用时需要传递该类及其该类的子类对象抽象类:当你看到一个抽象类作为方法的参数类型的时候,将来调用时需要传递继承该抽象类的具体子类对象......
  • 类,抽象类,接口作为方法的返回值类型 day10
    /*返回值类型基本类型:引用类型:类:当你看到一个类作为方法的返回值类型的时候,将来方法内部应该返回该类或该类的子类对象抽象类:当你看到一个抽象类作为方法的返回值类型的时候,将来方法内部应该返回继承该抽象类的具体子类对象......