linux与python客户端,LINUX平台下DM7与Python的适配
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的适配相关推荐
- linux卸载db2客户端,Linux平台下DB2 UDB V8.1的安装与卸载 -电脑资料
在Linux平台下DB2 UDB V8.1提供了命令行和图形界面两种安装方式,图形界面虽然通过交互简化了安装的复杂性,但安装过程需要人工干预,耗时相对较长,并且在内核较新的Linux版本下还存在无法启 ...
- linux 卸载 patch,Oracle RAC 平台下 Patch 安装与卸载 步骤 收藏
之前整理过一篇Oracle Patch 的文章,参考: 关于Oracle Patch 的知识,参考之前的文章. 这篇主要是演示下RAC 平台下Patch 的安装与卸载. 一. Path 安装说明 在 ...
- linux可用机场客户端,Linux系统可用的6款Bittorrent客户端
大家都知道迅雷目前尚不支持Linux系统,其实使用Bittorrent客户端进行下载未尝不是一个好的选择,这里给大家介绍6款Linux可用Bittorrent客户端,方便经常需要进行文件下载的Linu ...
- 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). ...
- python资源百度网盘-bypy-百度网盘Python客户端 linux
安装 python 2.7 安装 扩展 git clone https://github.com/houtianze/bypy.git cd bypy python setup.py install ...
- python百度网盘-bypy-百度网盘Python客户端 linux
安装 python 2.7 安装 扩展 git clone https://github.com/houtianze/bypy.git cd bypy python setup.py install ...
- linux exchange邮件客户端,Linux中使用Hiri邮件客户端访问Exchange帐户
大家都知道 Microsoft Exchange 是企业级邮件市场占有率第一的产品,早已成为 Top 500 企业首选的邮件服务器和客户端标准配备.随着 Office 365 服务在全球的铺开,Exc ...
- linux nfs系统客户端,Linux系统中挂载共享目录NFS文件系统客户端安装与配置
NFS服务简介 NFS是Network File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡 ...
- linux sql server客户端,Linux的MS SQL Server客户端SQuirrel SQL Client
因为工作需要,要在ubuntu下连接mssql数据库,找了很久终于找到了SQuirreL SQL Client. SQuirreL SQL Client最大的魅力在于: 基于Java,具备良好的夸平台 ...
最新文章
- 清华大学王玉计算机,王玉珏(清华大学环境学院教授)_百度百科
- FD.io/VPP — DNS Plugin
- 剑指Offer(Java实现)按之字形顺序打印二叉树
- Python实现全民K歌歌曲下载
- mysql修改虚拟列属性失败_mysql虚拟列(Generated Columns)及JSON字段类型的使用
- VTK:几何对象之PolyLine
- js string转number_【虚拟机系列】JS虚拟机——实现setTimeout
- A股开盘:深证区块链50指数跌0.46%,泰豪科技涨停
- 都是成年人了,别再相信OA价格越低越好这种话了
- 《计算机网络 自顶向下方法》 第2章 应用层 Part1
- php if k 1,PHP实现大数字格式化成K/M/B结尾的简短形式
- Atitit.编程语言的主要的种类and趋势 逻辑式语言..函数式语言...命令式语言
- 什么是AUTOSAR, 为什么要用AUTOSAR
- 2021.1.6寒假打卡Day3
- 服务器上pdf文档无法删除,怎么对PDF文件进行编辑,PDF怎么删除空白页
- 【HUST】网安|操作系统实验|实验一 内核编译、系统调用、编写批处理脚本
- poj 3687(拓扑排序)
- 入行测试已经4年了 ,进华为后迷茫了3个月,做完这个项目我决定离职....
- 明伟LRS-350-24方案,送BOM表,原理图、PCB,可编辑。 以及结构图
- 处理Springboot项目启动时streamBridge.send导致的卡住卡死问题
热门文章
- Centos6.6部署Redis集群
- 【原创】轻量级移动设备即时通讯技术MobileIMSDK的常见问题解答
- redis DB操作
- 8.11 NOIP模拟测试17 入阵曲+将军令+星空
- layui+strust2多文件上传
- .net MVC之表单的使用
- [Data Structure Algorithm] 哈希表
- kmalloc、vmalloc、__get_free_pages()的区别
- 一 对国家出路的早期探索
- Python3 异常: name ‘basestring‘ is not defined