该仓库主要提供了支持 Python 连接达梦数据库的 Python 库。
支持使用 Python 连接达梦数据库,通过 Python 接口操作数据库,进行创表、删表、数据增删改查等功能,并展示数据内容。
dmPython 源码依赖 DM 安装目录或者 drivers 目录(drivers 目录为 DM 的驱动目录)中提供的 dpi 头文件。
安装前需要检查环境中是否存在 DM 安装目录或 drivers 目录,并设置 DM_HOME:
export DM_HOME=/opt/dmdbms
# 或
export DM_HOME=/drivers具体路径以实际环境为准,DM_HOME 路径下必须有 include 目录或者 dpi/include 目录。
在 Windows 操作系统下安装 dmPython,只需要直接执行 exe 文件即可。
Windows 操作系统下生成 exe 文件操作如下:
- 进入到 dmPython 源码所在目录(
setup.py文件所在路径)。 - 执行命令:
python setup.py bdist_wininst- 在
dist目录下会生成相关安装文件。
- 进入到 dmPython 源码所在目录(
setup.py文件所在路径)。 - 执行命令:
python setup.py bdist_rpm- 在
dist目录下会生成相关 rpm 包。 - 在 Linux 操作系统下使用 rpm 包安装 dmPython。安装和卸载命令参考如下:
安装:
rpm -ivh dmPython-2.1-7.1-py33-1.x86_64.rpm --nodeps卸载:
rpm -e dmPython-2.1-1.x86_64Windows 和 Linux 也可以直接使用源码安装,操作如下:
- 进入到 dmPython 源码所在目录(
setup.py文件所在路径)。 - 执行命令:
python setup.py installWindows 平台生成安装包(exe):
python setup.py bdist_wininstLinux 平台生成安装包(rpm):
python setup.py bdist_rpm若安装过程中出现依赖问题,则:
rpm -ivh file.rpm --nodepsLinux 安装命令:
rpm -ivh dmPython-1.1-7.1-py26-1.x86_64.rpm --nodepsLinux 卸载命令:
rpm -e dmPython-1.1-1.x86_64源码直接安装(不分平台):
python setup.py install64 位平台安装时,需增加 DM64 宏:
- 安装脚本
setup.py中全局变量defineMacros使用defineMacros = [('DM64', None),]。 - 否则,使用
defineMacros = []。
平台执行上述命令时,需先进行如下准备工作:定义环境变量 DM_HOME。
- Windows 平台需要将其添加到环境变量
PATH中。 - Linux 平台则不需要。
指定为 DM 安装目录 bin 的上层目录,例如:
# Windows
DM_HOME=C:\dmdbms
# Linux
export DM_HOME=/opt/dmdbms解决方案如下:
- 进入当前使用 Python 安装目录中的
Lib/distutils,找到文件msvc9compiler.py。 - 使用 UE 或其他文本编辑器打开
msvc9compiler.py。 - 在文件中找到:
vc_env = query_vcvarsall(VSERSION, plat_spec)- 根据本机安装的 VS 版本号,对应安装目录(如:
C:\Program Files\Microsoft Visual Studio 10.0),修改为:
vc_env = query_vcvarsall(10, plat_spec)示例报错:
import dmPython
Traceback (most recent call last):
File "", line 1, in
ImportError: DLL load failed: 找不到指定的模块
此时因为 dmPython 找不到动态库 dpi(Linux 为 libdmdpi.so,Windows 为 dmdpi.dll、dmdpi.lib),需要到 dpi 所在目录执行或者配置环境变量指向 dpi 所在目录。
若有安装 DM,直接配置环境变量指向 bin 目录或者指向 drivers/dpi。
Linux 示例:
export LD_LIBRARY_PATH=/opt/dmdbms/bin
# 或
export LD_LIBRARY_PATH=/drivers/dpi此问题为编译 dmPython 的环境 UCS 编码与执行环境不匹配导致,常见情况:
- 在不同的操作系统环境中编译和使用 dmPython。
- 编译或安装 dmPython 的 Python 程序本身 UCS 编码与当前操作系统不一致。
这两种情况都与 dmPython 源码无关,检查当前环境即可。
解决:
- 第一种:在同一台机子上编译和使用即可。
- 第二种:一般是使用源码安装了 Python,然后再用 Python 去编译或安装 dmPython,因此需要检查在使用源码安装 Python 时使用的编码与操作系统是否一致。
源码安装 Python 参考命令如下:
./configure --prefix=$YOUR_PATH --enable-unicode=ucs4--enable-unicode 选项指定成与操作系统一致的编码即可。