|
本章主要介绍在Python开发的时候,如何使用Python快速连接达梦数据库。dmPython简介dmPython是DM提供的依据PythonDBAPIversion2.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环境变量安装编译工具MicrosoftVisualC++BuildTools编译安装dmPython安装完DM数据库软件后,在安装路径下的drivers目录下,找到dmPython的驱动源码。进入到dmPython驱动源码目录CopycdD:\dmdbms\drivers\python\dmPython编译安装dmPythonCopypythonsetup.pyinstall编译安装结束后使用piplist命令查看是否安装成功查看搜索路径并将dpi目录文件拷贝到搜索路径下dmPython通过调用DMDPI接口完成Python模块扩展。在其使用过程中,除Python标准库以外,还需要DPI的运行环境。进入python解释器查看搜索路径Copypythonimportsyssys.pathC:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\dmpython-2.3-py3.9-win-amd64.egg编写测试代码CopyimportdmPythonconn=dmPython.connect(user='SYSDBA',password='SYSDBA',server='192.168.201.118',port=5236)cursor=conn.cursor()cursor.execute('selectusernamefromdba_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环境变量:Copyvi/root/.bash_profileexportDM_HOME=/home/dmdba/dmdbmssource/root/.bash_profile安装编译工具gccCopyyuminstallgcc确认当前使用的Python版本是自己编译安装的还是系统自带或通过yum源方式安装如果是自己编译安装的Python则不需要安装python3-devel。如果是系统自带或通过yum源方式安装的Python,需要安装python3-devel依赖。编译并安装dmPython安装完DM数据库软件后,在安装路径下的drivers目录下,找到dmPython的驱动源码。进入到dmPython驱动源码目录Copycd/home/dmdba/dmdbms/drivers/python/dmPython编译安装dmPythonCopypython3setup.pyinstall编译安装结束后使用pip3list命令查看是否安装成功设置LD_LIBRARY_PATH环境变量dmPython通过调用DMDPI接口完成Python模块扩展。在其使用过程中,除Python标准库以外,还需要DPI的运行环境。Copyvi/root/.bash_profileexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dmdbms/drivers/dpi/source/root/.bash_profile编写的测试代码CopyimportdmPythonconn=dmPython.connect(user='SYSDBA',password='SYSDBA',server='192.168.201.118',port=5236)cursor=conn.cursor()cursor.execute('selectusernamefromdba_users')values=cursor.fetchall()print(values)cursor.close()conn.close()输出数据库中的用户名则表示连接数据库成功。
|
|