• Window环境下不安装DM数据库,编译dmPython


    一、简介

    dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。dmPython 实现这些 API,使 Python 应用程序能够对 DM 数据库进行访问。
    dmPython 通过调用 DM DPI 接口完成 python 模块扩展。在其使用过程中,除 Python标准库以外,还需要 DPI 的运行环境。

    二、使用场景

    应用服务器与数据库服务器分开规划,且应用服务器上不安装数据库,这种情况下安装dmPython

    三、注意事项

    • 建议数据库软件包中自带的dmPython源码包,减少摸不着头脑的错误。
    • 编译安装时,它会探测数据库软件目录,最好提前设置好DM_HOME环境变量。

    四、具体操作

    1. 拷贝DB服务器相关文件

    推荐使用随同数据库软件包下的相关文件以及驱动包,不推荐使用第三方渠道的下载包或其他数据库版本的目录文件以及驱动包

    拷贝数据库安装目录的三类目录文件到应用服务器上

    • 数据库服务器上$DM_HOME/drivers
    • $DM_HOME/bin目录
    • $DM_HOME/include目录

    2. 添加环境变量

    将如下四个路径,加入到PATH中
    在这里插入图片描述

    3.编译驱动

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

    1. dmPython在达梦数据库的安装目录下面,路径为【数据库安装路径】/drivers/python(我的安装路径是D:\damba\dm8\drivers\python\dmPython)

    在这里插入图片描述

    1. 进入到dmPython中 编译,执行以下命令
    python setup.py install
    
    • 1

    如图所示即为安装成功。

    在这里插入图片描述

    如果出现如下提示error: Microsoft Visual C++ 9.0 is required.请参考【Q&A】中的解决方案

    在这里插入图片描述

    4 验证dmPython

    如果出现如下则说明安装成功

    在这里插入图片描述

    5 测试是否连接成功

    # !/usr/bin/python
    # coding:utf-8
    import dmPython
    
    try:
        conn = dmPython.connect(user='SYSDBA', password='SYSDBA', server='localhost', port=5236)
        cursor = conn.cursor()
        print('python: conn success!')
        conn.close()
    except (dmPython.Error, Exception) as err:
        print(err)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    如果所示,即为成功。

    在这里插入图片描述

    如是下图:

    如果提示ImportError: DLL load failed: 找不到指定的模块。请到【Q&A】中查看

    在这里插入图片描述

    Q&A

    1. pip安装三方库不成功

    提示:WARNING: You are using pip version 20.2.3, however version 20.2.4 is available.

    原因:pip版本过低导致安装第三方库失败

    在这里插入图片描述

    ## 直接输入下面命令解决
    python -m pip install --upgrade pip
    
    • 1
    • 2

    2. error: Microsoft Visual C++ 9.0 is required

    原因:包编译的时候缺少C++的编译环境,所以只需要安装即可,安装网盘链接中VCForPython27.msi文件。下载完成后双击安装

    在这里插入图片描述

    3. 控制台乱码

    修改Pycharm的编码,window默认是gbk。

    在这里插入图片描述

    解决方案

    在这里插入图片描述

    4.ImportError: DLL load failed: 找不到指定的模块

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

    工具中的做法

    调用达梦数据库时需要调用DM数据库的一些DLL文件,因为找不到所以报错了。
    在这里插入图片描述

    在项目启动时,在Environment variables中配置环境变量

    注意:D:\damba\dm8是我本地dm的安装路径,需要替换成自己的。

    PYTHONUNBUFFERED=1;PATH=PATH=D:\damba\dm8\drivers\\;D:\damba\dm8\drivers\logmnr\\;D:\damba\dm8\bin
    
    • 1

    在这里插入图片描述

    系统中替换

    将D:\dmdbms\drivers\dpi下的所有文件,拷贝到sys.path的最后一个目录下面。拷贝到其他目录仍然会报错。
    在这里插入图片描述

    5.error: Microsoft Visual C++ 14.0 is required

    资料包中下载
    双击visualcppbuildtools_full.exe,选择默认即可,点击安装,等待10分钟左右即可完成安装。

    资料

    链接:https://pan.baidu.com/s/1Xv8xmy83VbA42FVk7_NtPA 提取码:b2u8

  • 相关阅读:
    【紫光同创国产FPGA教程】——PDS安装教程
    CS50_AI_2_Uncertainty 概率 (Python实现 - 英文注释)
    odoo14 生成PDF报表详解
    java抽象的使用
    【学习】软件测试中对bug定位的方法,如何区分是前端还是后端bug
    Cascade-MVSNet CVPR-2020 学习笔记总结 译文 深度学习三维重建
    frp+docker内网穿透安装配置
    MySQL用户管理(CentOS)
    唤醒手腕 Matlab 游戏编程常用技术知识点详细教程(更新中)
    FreeRTOS学习笔记-任务通知
  • 原文地址:https://blog.csdn.net/qq_35349982/article/details/126891754