本章主要介绍在 Python 开发的时候,如何使用 Python 快速连接达梦数据库。
dmPython 简介
dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。
使用 Python 连接达梦数据库时需要安装 dmPython。安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,可以找到 dmPython 的驱动源码,由于提供的是源码,需要自己编译安装,下面分别介绍如何在 Windows 和 Linux 环境下编译安装 dmPython。
Windows 环境编译安装 dmPython
安装 DM 数据库软件并设置 DM_HOME 环境变量
dmPython 源码依赖 DM 安装目录中提供的 include 头文件,编译安装前需要检查是否安装 DM 数据库软件,并设置 DM_HOME 环境变量。
可访问达梦云适配中心下载试用,下载 DM8 数据库试用版并安装,请参考 DM 数据库安装。
设置 DM_HOME 环境变量
安装编译工具 Microsoft Visual C++ Build Tools
编译安装 dmPython
安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,找到 dmPython 的驱动源码。
进入到 dmPython 驱动源码目录
cd D:\dmdbms\drivers\python\dmPython
编译安装 dmPython
python setup.py install
编译安装结束后使用 pip list 命令查看是否安装成功
查看搜索路径并将 dpi 目录文件拷贝到搜索路径下
dmPython 通过调用 DM DPI 接口完成 Python 模块扩展。在其使用过程中,除 Python标准库以外,还需要 DPI 的运行环境。
进入 python 解释器查看搜索路径
python
import sys
sys.path
C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\dmpython-2.3-py3.9-win-amd64.egg
编写测试代码
import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server= '192.168.201.118',port=5236)
cursor = conn.cursor()
cursor.execute('select username from dba_users')
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()
输出数据库中的用户名则表示连接数据库成功。
Linux 环境编译安装 dmPython
安装 DM 数据库软件并设置 DM_HOME 环境变量
dmPython 源码依赖 DM 安装目录中提供的 include 头文件,编译安装前需要检查是否安装 DM 数据库软件,并设置 DM_HOME 环境变量。
可访问达梦云适配中心下载试用,下载 DM8 数据库试用版并安装,请参考 DM 数据库安装。
设置 DM_HOME 环境变量:
vi /root/.bash_profile
export DM_HOME=/home/dmdba/dmdbms
source /root/.bash_profile
安装编译工具 gcc
yum install gcc
确认当前使用的 Python 版本是自己编译安装的还是系统自带或通过 yum 源方式安装
如果是自己编译安装的 Python 则不需要安装 python3-devel。
如果是系统自带或通过 yum 源方式安装的 Python,需要安装 python3-devel 依赖。
编译安装 dmPython
安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,找到 dmPython 的驱动源码。
进入到 dmPython 驱动源码目录
cd /home/dmdba/dmdbms/drivers/python/dmPython
编译安装 dmPython
python3 setup.py install
编译安装结束后使用 pip3 list 命令查看是否安装成功
设置 LD_LIBRARY_PATH 环境变量
dmPython 通过调用 DM DPI 接口完成 Python 模块扩展。在其使用过程中,除 Python标准库以外,还需要 DPI 的运行环境。
vi /root/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dmdbms/drivers/dpi/
source /root/.bash_profile
编写测试代码
import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server= '192.168.201.118',port=5236)
cursor = conn.cursor()
cursor.execute('select username from dba_users')
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()
输出数据库中的用户名则表示连接数据库成功。