dmpython安装

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

1.linux下安装dmpython

操作系统版本:

[root@dca dmPython.egg-info]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

数据库版本:

SQL> select * from v$version;

LINEID     BANNER                   

---------- -------------------------

1          DM Database Server 64 V8

2          DB Version: 0x7000c

python版本

[root@dca dmPython.egg-info]# python -V

Python 2.7.5

添加环境变量

[root@dca ~]# vi .bash_profile

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm/dmdbms/bin"

export DM_HOME="/dm/dmdbms"

安装dmPython

数据库安装好后,dmPython包位于/dm/dmdbms/drivers/python/dmPython

[root@dca ~]#  cd /dm/dmdbms/drivers/python/dmPython/

[root@dca dmPython]#  python setup.py install

连接数据库

[root@dca ~]# python

Python 2.7.5 (default, Nov 16 2020, 22:23:17)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import dmPython

open fail! path:./libcrypto.so

--连接数据库

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

--建立游标

>>> cursor = conn.cursor()

--查询

>>> cursor.execute('select * from  u1')

<__builtin__.DmdbCursor on <dmPython.Connection to SYSDBA@LOCALHOST:5236>>

>>> values = cursor.fetchall()

>>> values

[(11L, datetime.date(1991, 9, 5), 'cccc')]

--关闭游标

>>> cursor.close()

--关闭查询

>>> conn.close()

2.windows下安装dmpython

操作系统

windows server 2016 Datacenter

数据库版本

SQL> select * from v$version;

行号       BANNER

---------- -------------------------

1          DM Database Server 64 V8

2          DB Version: 0x7000c

python版本

C:\Users\Administrator>python -V

Python 3.9.6

添加环境变量

将如下两个路径,加入到PATH

安装

打开cmd进入D:\dmdbms\drivers\python\dmPython执行如下命令

D:\dmdbms\drivers\python\dmPython>python setup.py install

这里有会有一个报错,提示需要安装Microsoft Visual C++ 14.0或者更高版本。这里可以通过“visualcppbuildtools_full.exe”在线安装,但是可能会出现“安装包丢失或损坏”。可以下载离线安装包“solved_packageMissInInstalling_mu_visual_cpp_build_tools_2015_update_3_x64_dvd_dfd9a39c.iso”解压后安装即可。

安装后导入dmPython模块有如下报错:

C:\Users\Administrator>python

Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import dmPython

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ImportError: DLL load failed while importing dmPython: 找不到指定的模块

原因是:Python 3.8 变更了 Windows 下动态链接库 (DLL) 的加载规则。 新的规则提高了安全性,默认情况下仅能从可信的位置(Trusted Locations)加载 DLL 依赖,一定程度上避免诸如 DLL 劫持之类的安全风险。

此时需要将DLL文件拷贝到搜索路径

>>> import sys

>>> sys.path

['', 'D:\\dmdbms\\drivers\\python\\dmPython', 'D:\\python\\Python39\\python39.zip', 'D:\\python\\Python39\\DLLs', 'D:\\python\\Python39\\lib', 'D:\\python\\Python39', 'D:\\python\\Python39\\lib\\site-packages', 'D:\\python\\Python39\\lib\\site-packages\\dmpython-2.3-py3.9-win-amd64.egg']

将D:\dmdbms\drivers\dpi下的所有文件,拷贝到sys.path的最后一个目录下面。拷贝到其他目录仍然会报错。

拷贝后再次导入

C:\Users\Administrator>python

Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import dmPython

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

>>> cursor = conn.cursor()

>>> cursor.execute('select * from  t1')

<builtins.DmdbCursor on <dmPython.Connection to SYSDBA@LOCALHOST:5236>>

>>> values = cursor.fetchall()

>>> print(values)

[('tiger', 'python')]

>>> cursor.close()

>>> conn.close()

注意2.7.5版本可以直接用values显示结果,3.9.6版本需要print打印,直接values报错。

更多资讯请上达梦技术社区了解:https://eco.dameng.com

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值