python达梦数据库_Python 编程可以访问达梦数据吗?

可以,但官方只给了python2.7版本的包,python3目前无法使用,此外达梦自己的linux客户端只支持redhat或者centos。请首先在系统安装达梦客户端,下载地址如下:

具体流程如下:

Linux下DM7与Python的适配方法

1.概述

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

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

本文就将给大家介绍如何在Linux下使用dmPython接口来让Dm7适配python。

注:本文演示环境:

数据库版本: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

解压后做以下操作:

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

7. 运行下面的命令

python setup.py install

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= 'LOCALHOST',port=5236)

6.查询测试

>>> cursor = conn.cursor()

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

>

>>> values = cursor.fetchall()

>>> values

[('1',)]

7.关闭连接和游标

>>> cursor.close()

>>> conn.close()

参考资料:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021年将迎接你的是什么?

1 2021年迎接你的是...(素材来源网络,侵删)▼2 原来帅真的可以当饭吃(素材来源网络,侵删)▼3 我的芒果千层到了吗?(素材来源网络,侵删)▼4 这个岗位的上一…

log4j:WARN No appenders could be found for logger

2019独角兽企业重金招聘Python工程师标准>>> 提示这个错误是因为log4j的环境没有配置的原因,在src目录下新建一个log4j.properties的文件,黏贴如下内容即可解决。 # Configure logging for testing: optionally with log file log4j.rootLog…

推荐Mongodb GUI 可视化管理工具-NoSQLBooster

工欲善其事,必先利其器。虽然 MongoDB 已经提供了默认的管理工具(CLI)Shell 命令行,但是每次登录时都需要做身份认证,切换数据库等等一系列繁琐的操作,时间久了还是挺闹心的。实际开发中,还是会…

使用string.Format需要注意的一个性能问题

今天,我在写C#代码时,突然发现一个最熟悉的陌生人 —— string.Format。在写C#代码的日子里,与它朝夕相伴,却没有真正去了解它。只知道在字符串比较多时,用它比用加号进行字符串连接效率更高(当然也更方便&…

hdu 3480 斜率dp

思路&#xff1a;很普通的斜率dp #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define Maxn 10010 #define LL int using namespace std; LL dp[Maxn][2],num[Maxn]; int que[Maxn*10]; inline LL getleft(int x,int …

angular的html引入js,在AngularJS中的文件夹中加载JavaScript和CSS文件

AngularJS不支持你想要的东西,但是你可以看看Grunt或Gulp等构建工具,它们可以让你“构建”你的应用程序.在您的情况下,这些工具可以查找CSS文件并将它们连接成一个文件.这样,如果您添加新模块,则index.html不必更改.我个人使用GulpJS,因为它看起来要快得多.我发现配置更容易&am…

Android之android.graphics.drawable.Drawable.Callback回调接口

[java] view plaincopy /*如果你想实现一个扩展子Drawable的动画drawable&#xff0c;那么你可以通过setCallBack(android.graphics.drawable.Drawable.Callback)来把你实现的该接口注册到动画drawable *中。可以实现对动画的调度和执行 */ public static interface Call…

为什么说,每个人都应该多读些书?

全世界只有3.14 % 的人关注了爆炸吧知识知乎上有个高赞问题&#xff1a;有哪些值得长期坚持下去就能改变人生的好习惯&#xff1f;其中最高频的回答是读书。随着经历和阅历的增加&#xff0c;越来越多的人清醒的认识到&#xff1a;读书不再是学生时代的事&#xff0c;而是一生的…

.Net Crank性能测试入门

Crank 是微软新出的一个性能测试框架&#xff0c;集成了多种基准测试工具&#xff0c;如bombardier、wrk等。Crank通过统一的配置&#xff0c;可以转换成不同基准测试工具命令进行测试。可参考Bombardier Job实现。安装Crank运行如下两个命令分别安装Crank的cli(Controller)和A…

兄弟机cnc系统面板图解_FANUC软操作面板的应用介绍,真的太详细了

FANUC软操作面板介绍&#xff1a;FANUC软操作面板功能是CNC系统软件的一项功能&#xff0c;可以利用MDI键盘上的光标移动按键和轴移动方向按键 代替机床操作面板的按钮&#xff0c;结合显示器的显示&#xff0c;实现与操作面板同样的功能。在CNC系统安装到机床上之前进行调试试…

个人项目耗时对比记录表

PSP2.1Personal Software Process StagesTime(%)Planning计划 Estimate 估计这个任务需要多少时间 Development开发 Analysis 需求分析 Design Spec 生成设计文档 Design Review 设计复审&#xff08;和同事审核设计文档&#xff09; Coding Standard 代码规范&#xff08…

C# 中静态调用C++dll 和C# 中动态调用C++dll

在最近的项目中&#xff0c;牵涉到项目源代码保密问题&#xff0c;由于代码是C#写的&#xff0c;容易被反编译&#xff0c;因此决定抽取核心算法部分使用C编写&#xff0c;C到目前为止好像还不能被很好的反编译&#xff0c;当然如果你是反汇编高手的话&#xff0c;也许还是有可…

Unity中使用RequireComponent,没有添加上组件

using UnityEngine; using System.Collections;[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))] public class starTest : MonoBehaviour {private Mesh mesh;void Start(){}void Update(){} }代码是这么写的但是编译完后发现没增加组件&#xff0c; 为啥呢………

html写出日出,描写日出优美句子

太阳升起来了&#xff0c;伴着牧歌跳出了地平线&#xff0c;那万道霞光透过云隙照在一望无垠的大草原上&#xff0c;为这片宽广的原野铺上了一层金辉。描写日出的优美句子应该怎么写?描写日出的优美句子1、光芒四射&#xff0c;把万物都唤醒了&#xff1a;小草睁开了它那朦胧的…

Android之封装支付宝支付

在做Android支付的时候肯定会用到支付宝支付&#xff0c; 根据官方给出的demo做起来非常费劲&#xff0c;所以我们需要一次简单的封装。 封装的代码也很简单&#xff0c;就是将官网给的demo提取出一个类来方便使用。 /*** 支付宝支付* * author lenovo*/ public class Alipay {…

有生之年必看!千古第一奇书《山海经》到底是怎样的一本书?

▲点击查看提到《山海经》&#xff0c;大家应该都耳熟能详。作为一部富有神话色彩的千古奇书&#xff0c;它记载了各种脍炙人口的神话传说&#xff0c;像女娲造人、夸父逐日、羿射九日、精卫填海、大禹治水……都是从这里诞生的。除了神话传说&#xff0c;它内容之博大&#xf…

值得永久收藏的 C# 设计模式套路(三)

设计模式套路&#xff0c;完结篇。今天写写设计模式套路中的最后一部分&#xff1a;行为设计模式。这是这个系列的最后一篇。前两篇在&#xff1a;值得永久收藏的 C# 设计模式套路(一)值得永久收藏的 C# 设计模式套路(二)如果你没有看过前两篇&#xff0c;建议先去看看前两篇&a…

sv队列和动态数组的区别_Go 刷 LeetCode 系列:经典(7) 设计双端队列

设计实现双端队列。你的实现需要支持以下操作&#xff1a;MyCircularDeque(k)&#xff1a;构造函数,双端队列的大小为k。insertFront()&#xff1a;将一个元素添加到双端队列头部。如果操作成功返回 true。insertLast()&#xff1a;将一个元素添加到双端队列尾部。如果操作成功…

js 中声明变量 “提前”

1.变量定义提升:声明语句&#xff1a;(1)var声明语句&#xff1a;变量声明语句会被“提前”至脚本或者函数的顶部&#xff0c;但是初始化的操作则还在原来var语句的位置执行。例如&#xff0c;下面的例子&#xff0c;所示&#xff1a;function fun(){alert(x);var x666;alert(x…

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(二)

现在开始介绍phpmysqlshell监控系统 1、目的此监控系统主要是通过phpmysqlshell的方式&#xff0c;通过shell脚本对各个机器的其各个服务进行监控&#xff0c;达到及时的了解其各个应用服务的状态&#xff08;如果宕掉与启动&#xff09;&#xff0c;在检测应用服务宕掉时&…