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()

linux与python客户端,LINUX平台下DM7与Python的适配相关推荐

  1. linux卸载db2客户端,Linux平台下DB2 UDB V8.1的安装与卸载 -电脑资料

    在Linux平台下DB2 UDB V8.1提供了命令行和图形界面两种安装方式,图形界面虽然通过交互简化了安装的复杂性,但安装过程需要人工干预,耗时相对较长,并且在内核较新的Linux版本下还存在无法启 ...

  2. linux 卸载 patch,Oracle RAC 平台下 Patch 安装与卸载 步骤 收藏

    之前整理过一篇Oracle Patch 的文章,参考: 关于Oracle Patch 的知识,参考之前的文章. 这篇主要是演示下RAC 平台下Patch 的安装与卸载. 一.  Path 安装说明 在 ...

  3. linux可用机场客户端,Linux系统可用的6款Bittorrent客户端

    大家都知道迅雷目前尚不支持Linux系统,其实使用Bittorrent客户端进行下载未尝不是一个好的选择,这里给大家介绍6款Linux可用Bittorrent客户端,方便经常需要进行文件下载的Linu ...

  4. linux apk 拆分 odex,android平台下,apk、jar、dex、odex、vdex、art文件相互转换,编译和反编译...

    apk.jar.dex.odex.vdex相互转换java 1. ? to jar 1.1 odex to jar 1.2 dex to jar 1.3 apk to jar 输出结果可能有损 1). ...

  5. python资源百度网盘-bypy-百度网盘Python客户端 linux

    安装 python 2.7 安装 扩展 git clone https://github.com/houtianze/bypy.git cd bypy python setup.py install ...

  6. python百度网盘-bypy-百度网盘Python客户端 linux

    安装 python 2.7 安装 扩展 git clone https://github.com/houtianze/bypy.git cd bypy python setup.py install ...

  7. linux exchange邮件客户端,Linux中使用Hiri邮件客户端访问Exchange帐户

    大家都知道 Microsoft Exchange 是企业级邮件市场占有率第一的产品,早已成为 Top 500 企业首选的邮件服务器和客户端标准配备.随着 Office 365 服务在全球的铺开,Exc ...

  8. linux nfs系统客户端,Linux系统中挂载共享目录NFS文件系统客户端安装与配置

    NFS服务简介      NFS是Network  File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡 ...

  9. linux sql server客户端,Linux的MS SQL Server客户端SQuirrel SQL Client

    因为工作需要,要在ubuntu下连接mssql数据库,找了很久终于找到了SQuirreL SQL Client. SQuirreL SQL Client最大的魅力在于: 基于Java,具备良好的夸平台 ...

最新文章

  1. 清华大学王玉计算机,王玉珏(清华大学环境学院教授)_百度百科
  2. FD.io/VPP — DNS Plugin
  3. 剑指Offer(Java实现)按之字形顺序打印二叉树
  4. Python实现全民K歌歌曲下载
  5. mysql修改虚拟列属性失败_mysql虚拟列(Generated Columns)及JSON字段类型的使用
  6. VTK:几何对象之PolyLine
  7. js string转number_【虚拟机系列】JS虚拟机——实现setTimeout
  8. A股开盘:深证区块链50指数跌0.46%,泰豪科技涨停
  9. 都是成年人了,别再相信OA价格越低越好这种话了
  10. 《计算机网络 自顶向下方法》 第2章 应用层 Part1
  11. php if k 1,PHP实现大数字格式化成K/M/B结尾的简短形式
  12. Atitit.编程语言的主要的种类and趋势 逻辑式语言..函数式语言...命令式语言
  13. 什么是AUTOSAR, 为什么要用AUTOSAR
  14. 2021.1.6寒假打卡Day3
  15. 服务器上pdf文档无法删除,怎么对PDF文件进行编辑,PDF怎么删除空白页
  16. 【HUST】网安|操作系统实验|实验一 内核编译、系统调用、编写批处理脚本
  17. poj 3687(拓扑排序)
  18. 入行测试已经4年了 ,进华为后迷茫了3个月,做完这个项目我决定离职....
  19. 明伟LRS-350-24方案,送BOM表,原理图、PCB,可编辑。 以及结构图
  20. 处理Springboot项目启动时streamBridge.send导致的卡住卡死问题

热门文章

  1. Centos6.6部署Redis集群
  2. 【原创】轻量级移动设备即时通讯技术MobileIMSDK的常见问题解答
  3. redis DB操作
  4. 8.11 NOIP模拟测试17 入阵曲+将军令+星空
  5. layui+strust2多文件上传
  6. .net MVC之表单的使用
  7. [Data Structure Algorithm] 哈希表
  8. kmalloc、vmalloc、__get_free_pages()的区别
  9. 一 对国家出路的早期探索
  10. Python3 异常: name ‘basestring‘ is not defined