引言
KingbaseES 作为国产数据库,凭借高兼容性、高性能和高安全性,在金融、政府、能源等关键领域得到广泛应用。本文将介绍如何通过 Python 的 ksycopg2 驱动连接并操作 Kingbase 数据库。
一、ksycopg2 驱动:连接 Kingbase 的桥梁
1.1 驱动架构深度剖析
ksycopg2 是 Python 编程语言的 KingbaseES 数据库适配器。在 Kingbase 场景下展现出完美的兼容性。其底层采用 C 扩展实现,通过 libpq 库与数据库进行通信。该驱动完整实现了 DB API 2.0 规范,支持线程安全、异步通信、二进制协议传输等高级特性。
1.2 ksycopg2 兼容 Python 版本信息
驱动支持 Python 2.7 及 Python 3.5 至 3.10 版本。具体兼容性需参考官方文档。
1.3 环境配置要求
- 安装与驱动对应版本的数据库,且数据库连接可用。
- 确保 Ksycopg2 支持开发环境:
- Linux:x86_64、arm、loongarch、mips、sw
- Windows:提供 64 位支持
- 编译器:
- Linux:仅支持依赖 glibc 的编译的 Python。
- Windows:依赖 msvc120 的运行时库。
- Python 环境:见目录 1.2 中的版本兼容表。
二、安装部署驱动
检测系统架构及 Python 版本信息,选择适配的 Ksycopg2 数据库驱动。
查看 Python 版本:
$ python -V
Python 3.5.6
当前环境使用的是 Python3.5,若对应架构是 x86_64,则应该选用 x86 架构的 Python3.5 版本的 Ksycopg2 驱动包安装。
解压适用于对应架构和 Python 版本的 Ksycopg2 驱动包后,Linux 环境下 Python 3.5 版本的驱动目录结构如下: (此处省略图片)
_ksycopg 开头的这个库就是 Python 驱动,后缀为 .py 的文件是 Ksycopg2 驱动提供的可拓展的 Python 文件,包括了一些游标工厂、批量执行、连接池等功能。
将 ksycopg2 这个文件夹拷贝到对应 Python 安装目录下的 site-packages 路径下(site-packages 路径是 Python 默认加载模块的搜索路径)。
安装完成后,在 Python 命令行中执行 import ksycopg2 命令,检查是否出现错误提示。
在确认驱动包使用无误的前提,若导入模块仍然报错:
错误信息:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/python/py-3.5/lib/python3.5/site-packages/ksycopg2/__init__.py", line 51, in <module> from ksycopg2._ksycopg import ( # noqa ImportError: libkci.so.5: cannot open shared object file: No such file or directory
原因:这是因为 Ksycopg2 驱动以动态库形式存在,且依赖 Libkci 库。当 Python 加载 Ksycopg2 时,只能识别到主库本身,而未能检测到其依赖库,因此产生了错误提示。
解决:建议通过配置环境变量 LD_LIBRARY_PATH 来设置 Linux 系统的默认库搜索路径。该路径可指定 Psycopg2 驱动包自带的依赖库,若无依赖库也可配置其他任意依赖库路径。
配置(Ksycopg2 驱动包内一般会提供依赖库):
export LD_LIBRARY_PATH=/home/python/py-3.5/lib/python3.5/site-packages/ksycopg2:$LD_LIBRARY_PATH
在 Windows 环境下,系统通常会自动识别 site-packages/ksycopg2 目录中的依赖库,无需额外配置环境变量。但需要注意的是,必须安装 MSVC120(VS2013)运行时库,否则将无法加载驱动程序。


