一、下载DM官方安装包
以DM8为例,下载地址为:https://package.dameng.com/ftp/download?url=/eco/adapter/dm/dm8/dm8_20210719_x86_win_64_ent.zip
二、python编译dmPython环境
1、先解压出iso环境,如:dm8_20210719_x86_win_64_ent_8.1.2.38_pack2
2、将dm8的执行环境(bin目录)加入到系统环境变量,如我的环境为:
D:\SOFT\dm8_20210719_x86_win_64_ent_8.1.2.38_pack2\source\bin
3、进入dmPython的官方安装源,如我的目录为:
D:\SOFT\dm8_20210719_x86_win_64_ent_8.1.2.38_pack2\source\drivers\python\dmPython
4、使用CMD进行setup.py编译
python setup.py build
如果提示:
那么请使用whl安装包(最好)或者exe安装包,因为已经打包好VC++环境
本人的已打包好的安装包可以下载:dmPython-2.3-cp39-cp39-win_amd64.whl-桌面系统文档类资源-CSDN下载
如果实在找不到,那就把最新的VC下载下来,并进行安装,需要安装勾选的如下图:
慢慢等待吧。
4、使用CMD进行setup.py安装
python setup.py install
看到以下信息,表明安装成功了。
三、导入dmPython
1、启动python环境并导入dmPython
不出意外,应该还会继续在报错的路上继续奔跑,如下图:
不要慌,是因为没有将依赖的DLL包复制过去
(锤一锤官方的文档:说可以设置lib包的路径加入系统环境变量即可,实际验证下来,不行,还得老老实实复制过去)
2、解决上述问题,复制依赖包
包路径,如我的电脑:D:\SOFT\dm8_20210719_x86_win_64_ent_8.1.2.38_pack2\source\drivers\dpi
全部拷贝到,dmPython的包安装位置,如我的电脑:
C:\Program Files\Python\Lib\site-packages
注意,一定是要与这个文件在同目录下:
有些使用setup.py安装的,可以是在子目录下,如下图:
3、再次导入
可以看到,顺利无错误了
四、连接达梦,查询数据
提供一下简单示例
from dmPython import Connection
from dmPython import DictCursor
properties = {
'user': 'SYSDBA',
'password': 'SYSDBA',
'server': '192.168.14.56',
'port': 5236,
'autoCommit': True,
'cursorclass': DictCursor
}
conn = Connection(**properties)
# print(conn.current_schema)
cursor = conn.cursor()
# cursor.execute('set schema DATAM_JX_DKY') # 通过这个可以切换模式,即mysql概念中的切库,如果不想切换,也可以直接在语句中加上模式名即可
# print(conn.current_schema) # 默认模式名是:SYSDBA
cursor.execute('select * from "DATAM_JX_DKY"."DM_META_LEVEL"')
res = cursor.fetchall()
for i in res:
print(i)
可以查询到如下数据: