一、问题
针对启动python项目报错:
django.core.exceptions.ImproperlyConfigured: 'django_dmPython' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of:
'mysql', 'oracle', 'postgresql', 'sqlite3'
二、解决办法
1.安装dmpython(源码包方式)
进入dm\drivers\python\dmPython(安装Dm的本地目录),然后执行 python setup.py install (注意本地安装版本情况)。此时如果出现下图错误(需要安装Visual Studio):
错误解决方法:去官网下载安装文件(需要拥有一个微软的账号)打开链接 Home - Visual Studio Subscriptions Portal,登录账号,点击进入下载页面
下载完成后解压,找到VisualCppBuildTools_Full.exe 。直接点击运行,默认安装。安装完成后再到达梦目录下执行python setup.py install,如下图则安装成功。
2. 编译安装 Django_dmPython
进入本地 dm\drivers\python下进入相应的django目录中:同样执行python setup.py install命令进行安装。(尽量与django版本一致)
注意:如果启动项目报错(执行完成下边所有配置后启动报错)
这时候找到本地安装的django_dmpython目录中的compiler.py。注释掉与Random相关信息。(视情况操作)。
2.配置
1)、配置dpi环境变量
环境变量中找到DM_HOME,编辑属性为本地的dpi路径
2)、python3.8配置
3) 、将达梦数据库安装目录中的drivers/dpi下的所有文件复制到D:\python\python3.9\Lib\site-packages\dmPython-2.4.5-py3.9-win-amd64.egg下。
三、后期应用可能遇到问题
1. 执行接口时可能遇到报错:
主要django基础代码适配问题修改(dmpython3.1.7版本):
site-packages\django_dmPython\operations.py 289
由原来的
query = 'select %s from %s where rowid = %s' %(self.quote_name(pk_name), self.quote_name(table_name), cursor.lastrowid)改为:
query = 'select %s from %s where rowid = %s' %(self.quote_name(pk_name), self.quote_name(table_name), "'"+cursor.lastrowid+"'")