1.概述

dmPython是DM提供的依据Python DB API version 2.0中API使用规定而开发的数据库访问接口。dmPython 实现这些API,使Python应用程序能够对DM数据库进行访问。

dmPytho通过调用DM DPI接口完成python模块扩展。在其使用过程中, 除Python标准库以外,还需要DPI的运行环境。

2.安装python

2.1、安装Python

从官网下载Python 2.7.15的安装包。(https://www.python.org/downloads/source/)

解压后做以下操作:

(1) ./configure --prefix=/usr/lib/python2.7(这里填写自己的安装目录)。

(2)执行make命令操作 对源码进行编译。

(3)执行make install 进行安装。

如果没有报错,则代表 python2.7已经成功安装。

2.2、修改服务器默认Python版本

在终端输入python命令,会发现系统原有版本为2.6,并没有使用我们部署的2.7版本。可以使用which python命令查看该python命令调用的是那个位置的python,一般情况下是在/usr/bin/python。

但是,这里的python指向的是系统自带的2.6版本,而我们安装的python2.7的命令在/usr/local/python2.7/bin/python(前边的路径要根据你的安装路径确定)。我们只需把/usr/bin/python 删除掉:rm /usr/bin/python,然后做个软连接 ln -s /usr/local/python2.7/bin/python /usr/bin/python即可。再次在终端输入python命令,已经为2.7版本。

3.安装dmPython

dmPython可以运行在任何安装了python的平台上。可以使用安装包进行安装,需要保证dpi和dmPython版本一致,都是32位或都是64位。

在linux平台成功部署DM7客户端后,在dmdbms/python目录下存在安装dmPython的rpm安装包dmPython-2.3-7.1-py33-1.x86_64.rpm

在 Linux 操作系统下使用 rpm 包安装 dmPython。安装和卸载命令参考如下:

安装: rpm -ivh dmPython-2.3-7.1-py33-1.x86_64.rpm --nodeps

卸载: rpm -e dmPython-2.3-1.x86_64

另外,可以使用源码包进行安装,建议采取root用户做如下操作:

方式一:如果已经部署DM7客户端,则进行如下操作:

1、解压dmPython.zip

unzip dmPython.zip

2、运行下面的命令:

cd dmPython

python setup.py install

方式二:如果没有部署DM7客户端,则进行如下操作:

1、解压dmPython.zip

unzip dmPython.zip

2、运行下面的命令:

cd dmPython

3、设置DM_HOME环境变量为某个目录,假定为/opt/app/dmdbms

export DM_HOME=/opt/app/dmdbms

4、将其他服务器上部署的DM7客户端的动态库拷贝(从其他安装过DM7的相同操作系统的机器上拷贝)到DM_HOME目录

scp -r dmdba@IP:/opt/app/dmdbms/bin /opt/app/dmdbms/

5、将其他服务器上部署的DM7客户端的include目录拷贝到DM_HOME目录下

scp -r dmdba@IP:/opt/app/dmdbms/include /opt/app/dmdbms/

6、设置环境变量后,运行下面的命令

export LD_LIBRARY_PATH=$ LD_LIBRARY_PATH:/opt/app/dmdbms/bin:

python setup.py install

利用源码安装成功后,在/usr/lib/python2.7/lib/python2.7/site-packages/目录下会出现dmPython.so动态库文件。

注:实际测试中发现,V7.1.3.195-Build(2014.12.10-51794trunc)和V7.1.4.36-Build(2015.06.01-57266trunc)的客户端不支持Python,V7.1.5.60-Build(2016.03.16-66553trunc)及以上版本支持Python,如果需要使用Python连接低版本数据库,如14年或15年数据库,可以借用高版本的客户端进行安装,如上述的方式二。

4.配置环境变量

dmPython 的运行需要使用 dpi 动态库,用户应将 dpi 所在目录(一般为 DM 安装目录中的 bin 目录)加入系统环境变量,将dmdbms\bin目录添加到系统的环境变量中,如下:

export PATH=$PATH:/opt/app/dmdbms/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/app/dmdbms/bin

5.连接DM7

$python

>>>import dmPython

>>>conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server='192.168.8.2',port=5236)

6.查询测试

>>>cursor = conn.cursor()

>>>cursor.execute('select 1 from dual')

>

>>>values = cursor.fetchall()

>>>values

[('1',)]

7.关闭连接和游标

>>>cursor.close()

>>>conn.close()