人大金仓(KingbaseES V9)的Python环境的配置和基本使用

人大金仓(KingbaseES V9)提供了Python的驱动,可以通过Python来访问人大金仓数据库,不过这个配置并不算十分友好。

要使用这个Python驱动,除了要根据架构来下载对应的版本之外,还需要从KingbaseES的部署中拷贝一些lib文件出来。为了简化这些操作,我写一个脚本对自动化整个过程,并且把相关的文件都放在ksycopg2/一个目录下,这个脚本如下(download_psycopg2.sh)

    #!/bin/bash
    # 可以传一个路径前缀
    if [ ! -d  $1 ]; then
      mkdir -p $1
      cd $1
    fi
    # 根据版本下载对应的文件
    ARCH=x86_64
    VERSION=v9r1
    NAME=ksycopg2
    if [ "$ARCH" == "x86_64" ]; then
      ARCH_PART='x86'
    else
      ARCH_PART=${ARCH}
    fi
    FILENAME=${VERSION}_${NAME}_${ARCH}.tar.gz
    URL=https://kingbase.oss-cn-beijing.aliyuncs.com/KES_INTERFACE/V9/python/${NAME}/${ARCH_PART}/${FILENAME}
    wget ${URL}
    
    # 解压
    TAR_NAME=`tar vxf ${FILENAME} | grep 3.5 | head -1 | cut -f1 -d"/"`
    echo ${TAR_NAME}
    tar vxf ${TAR_NAME}
    DIR_NAME=ksycopg2
    
    # 从kingbase的docker容器中拷贝相关文件, 设置软链
    CONTAINER_NAME=kingbase
    sudo docker cp ${CONTAINER_NAME}:/home/kingbase/install/kingbase/lib/libkci.so.5 ${DIR_NAME}/
    sudo docker cp${CONTAINER_NAME}:/home/kingbase/install/kingbase/lib/libkci.so.5.12 ${DIR_NAME}/
    cd ${DIR_NAME}
    ln -s _ksycopg.cpython-35m-x86_64-linux-gnu.so _ksycopg.so

执行./download_psycopg2.sh [TARGET_DIR] 就可以把需要的Python驱动放到目标目录中(注意会建一个子目录psycopg2/)。

接下来,可以把ksycopg2拷贝到实际项目的ksycopg2/目录下,通过如下的方式来import,可以避免在shell中每次设置LD_LIBRARY_PATH环境变量。

    import ctypes
    ctypes.CDLL(f'ksycopg2/libkci.so.5')
    import ksycopg2

这样人大金仓的Python环境就算是弄好了。

接下来我们就首先连接数据库了,比如

    conn = ksycopg2.connect(database='kingbase',
                            user='<username>',
                            password='<password>',
                            host='127.0.0.1',
                            port=54321)
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

socratescli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值