数据库版本:KingBase ES V8.0

操作系统:统信UOS个人版 自带python3.7

必应搜索:linux python3 人大金仓搜到“python 3.6连接KingbaseES V8”( https://blog.csdn.net/sxqinjh/article/details/109272042),按其方法下载驱动,拷贝文件,运行python3,import ksycopg2,报错:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/ksycopg2/__init__.py", line 51, in <module>
    from ksycopg2._ksycopg import (                     # noqa
ModuleNotFoundError: No module named 'ksycopg2._ksycopg

 查看ksycopg2下,的确没有_ksycopg文件,但是有一个_ksycopg.cpython-36m-x86_64-linux-gnu.so文件。

继续搜索,搜到一篇“ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2”(ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2_深入理解PostgreSQL-CSDN博客),首字母是p而不是k,试一下吧。运行python3,import psycopg2,没有报错,运行上面的例子,也成功,由此可猜到金仓数据库与PostgreSQL关系密切,基本sql应该相同。暂时可以凑乎这样用。

但是还不甘心,查找psycopg2所在位置,__init__.py里面也是调用psycopg2._psycopg,而里面没有_psycopg文件,但是有个_psycopg.cpython-37m-x86_64-linux-gnu.so文件,想必这个so文件就是psycopg2._psycopg了。同理,ksycopg2下的_ksycopg.cpython-36m-x86_64-linux-gnu.so就是ksycopg2._ksycopg。考虑python版本是3.7,于是把_ksycopg.cpython-36m-x86_64-linux-gnu.so改名为_ksycopg.cpython-37m-x86_64-linux-gnu.so,再python3,import ksycopg2,报错信息变了:

ImportError: libkci.so.5: cannot open shared object file: No such file or directory

接着搜寻libkci.so想安装,没想到遍寻不得。

后来想起KingBase下有一个文件夹Interface,打开果然有python,打开python,里面有五个文件,期中一个就是ksycopg2_linux_amd64_python3.5.tar,删掉刚才装的驱动文件夹,把这个包解开,里面包含的是 _ksycopg.cpython-35m-x86_64-linux-gnu.so,照旧,35m改成37m,再运行python3,import ksycopg2,没有出错。运行脚本

conn = ksycopg2.connect(database="TEST", user="SYSTEM", password="aaa", host="127.0.0.1", port="54321")
cur = conn.cursor()
cur.execute("insert into test values(%s,%s)",(1,"xiexie5"))
cur.execute("insert into test values(%s,%s)",(2,"xiexie6"))
cur.execute("insert into test values(%s,%s)",(3,"xiexie7"))
cur.execute("insert into test values(%s,%s)",(4,"xiexie8"))
conn.commit()
conn.close()

 数据成功插入,由此访问成功。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐