博客
关于我
Linux下达梦数据库与Python的适配方法
阅读量:159 次
发布时间:2019-02-28

本文共 2687 字,大约阅读时间需要 8 分钟。

1.概述

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

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

环境:

数据库版本:DM Database Server x64V7.1.6.46-Build(2018.02.08-89107)ENT
操作系统版本:Red Hat Enterprise LinuxServer release 6.5
内核版本:2.6.32-431.el6.x86_64

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.6,并没有使用我们部署的2.7版本。

可以使用which python命令查看该python命令调用的是那个位置的python,一般情况下是在/usr/bin/python。

但是,这里的python指向的是系统自带的2.6版本,而我们安装的python2.7的命令在/usr/lib/python2.7/bin(前边的路径要根据你的安装路径确定)。我们只需把/usr/bin/python 删除掉:

rm /usr/bin/python

然后做个软连接

ln -s /usr/lib/python2.7/bin/python /usr/bin/python

再次在终端输入python命令,已经为2.7版本。

3.安装dmPython

3.1、rpm方式安装dmPython

dmPython可以运行在任何安装了python的平台上。可以使用安装包进行安装,需要保证dpi和dmPython版本一致,都是32位或都是64位,另外选择的RPM包的版本也要跟Python版本一致。(py27对应2.7版本的python,py33对应3.3版本的python)

在linux平台成功部署DM7客户端后,在dmdbms/python目录下存在安装dmPython的rpm安装包dmPython-2.3-7.1-py27-1.x86_64.rpm
在 Linux 操作系统下使用 rpm 包安装 dmPython。安装和卸载命令参考如下:
安装:

rpm -ivh dmPython-2.3-7.1-py27-1.x86_64.rpm --nodeps

卸载:

rpm -e dmPython-2.3-1.x86_64

注意,使用rpm包安装之后,需要检测下python安装目录下lib/python2.7/site-packages/内有无dmPython.so文件,如果没有,则需要手动把/usr/local/lib/python2.7/site-packages下的dmPython.so文件拷贝到Python安装目录下的对应位置。

3.2、源码方式安装dmPython

另外,也可以使用源码包进行安装,操作如下:

方式一:如果已经部署DM7客户端,则进行如下操作:
1、解压dmPython.zip

unzip dmPython.zip

2、运行下面的命令:

cd dmPythonpython 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

7、运行下面的命令

python setup.py install

4.配置环境变量

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

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

5.连接DM7

$python>>> import dmPython>>>conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server= 'LOCALHOST',port=5236)

6.查询测试

>>> cursor = conn.cursor()>>> cursor.execute('select 1 from dual') 
>>>> values = cursor.fetchall()>>> values[('1',)]

7.关闭连接和游标

>>> cursor.close()>>> conn.close()

以上就是Linux下DM7适配Python的基本方法,如果大家想对dmPython接口有更进一步的了解,可以参考Dm7安装目录下doc/special中的《 dm7_dmPython文档》。

转载地址:http://lhxd.baihongyu.com/

你可能感兴趣的文章
mysql_secure_installation初始化数据库报Access denied
查看>>
MySQL_西安11月销售昨日未上架的产品_20161212
查看>>
Mysql——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>
MySQL、HBase 和 Elasticsearch:特点与区别详解
查看>>
MySQL、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>