dmPython 可以运行在任何安装了 python 的平台上。可以使用安装包安装,也可以直接用源码安装。使用源码安装时,dmPython 编译依赖于 DM_HOME 目录下的 include 和 drivers/python/dmpython 中的相关头文件,需要确保系统中存在 DM_HOME 环境变量并且路径正确。另外,需要保证 dpi 和 dmPython 版本一致,都是 32 位或都是 64 位。
dmPython 的运行需要使用 dpi 动态库,用户应将 dpi 所在目录(一般为 DM 安装目录中的 bin 目录)加入系统环境变量。
可以使用如下命令很方便地在 Windows 和 Linux 操作系统下编译并安装 dmPython :
//进入到setup.py所在的源码目录,执行以下命令:
python setup.py install
也可以先生成安装文件再进行安装。
在 Windows 操作系统下生成 exe 文件的操作如下,之后只需要直接执行 exe 文件即可安装:
//进入到setup.py所在的源码目录,执行以下命令:
python setup.py bdist_wininst
在 Linux 操作系统下使用 rpm 包安装 dmPython,生成 rpm 包的操作如下所示:
//进入到setup.py所在的源码目录,执行以下命令:
python setup.py bdist_rpm
安装和卸载命令参考如下:
安装:rpm -ivh dmPython-2.1-7.1-py33-1.x86_64.rpm --nodeps
卸载:rpm -e dmPython-2.1-1.x86_64
说明由于在Windows环境下,python3.8提高了扩展模块(dmPython)的依赖DLL加载的安全性,现在只能从以下三个目录加载依赖库:system paths(即system32目录)、PYD文件所在目录、通过add_dll_directory()添加的目录。通过设置PATH环境变量和当前工作目录将不再有效。
因此,在Windows上安装完dmPython,即使环境变量PATH设置了dpi库所在目录,在import dmPython时也会出现"DLL load failed while imorting dmPython"的报错。
在python3.8及以上版本环境下使用dmPython,需要进行以下设置:
1. 在C:\Python38\Lib\site-packages增加.pth结尾的文件,例如dmPython.pth,文件内容如下:
import dpi
2. 在C:\Python38\Lib\site-packages路径下增加dpi.py,内容如下:
import os
os.add_dll_directory(r'C:\dmdbms\bin')
注意使用第三方加密算法,dpi默认是从DM_HOME/bin/external_crypto_libs或者dm_svc.conf配置文件中CIPHER_PATH参数指定的路径加载第三方依赖库,用户需要确保第三方依赖库存在。