1.查看操作系统版本
cat /etc/*release*
2.查看主机已安装的python版本
python --version
3.下载dmPython安装包
到达梦网站“应用开发指南”的“Python语言”页面可以获取python驱动源码包,本地下载好后再上传到主机上,或者也可以直接在主机上用命令行方式下载
或者
wget https://download.dameng.com/eco/docs/python-126594-20201027.zip
4.解压压缩包
unzip python-126594-20201027.zip
5.安装
cd python/dmPython_C/dmPython/
python setup.py install
会发现报错了,根据报错的大概意思是找不到达梦数据库软件安装的位置
到达梦数据库的安装目录下看看,一般驱动放在driver目录下,发现里面没有python目录,正好可以把下载解压后的python目录放进去
再次进入python目录安装试试
会发现还是会报同样的错误,想到这是用的root用户安装的,root用户下应该是没有配置达梦数据库的环境变量,验证一下看看
发现确实没有,添加达梦数据库的环境变量,然后再source即时生效,最后再安装试试
会发现中间会有一些警告,这些不影响,最终都完成安装了,所以当遇到那个报错后,最重要的是要配置好达梦数据库的环境
6.测试python连接
创建一个python脚本,脚本内容如下,然后给脚本执行权限,再执行看下是否能正常连接
#!/usr/bin/python
#coding:utf-8
import dmPython
try:
conn = dmPython.connect(user='SYSDBA', password='Dameng123', server='localhost', port=5237)
cursor = conn.cursor()
print('python: conn success!')
conn.close()
except (dmPython.Error, Exception) as err:
print(err)
搜索了相关错误,这种一般是因为python对缩进非常敏感,是缩进不符合要求,若有遇到这种的,可以调整报错的行的缩进后再看下情况
发现连接正常了
7.测试简单的创建、增删改查
测试方法和步骤6一样,脚本里添加了创建、增删改查的内容,脚本具体内容如下,注意每行的缩进,否则会报错:
#!/usr/bin/python
#coding:utf-8
import dmPython
try:
conn = dmPython.connect(user='SYSDBA', password='Dameng123', server='localhost', port=5237)
cursor = conn.cursor()
print('python: connect success!')
try:
#创建表
cursor.execute ('create table sysdba.python_test(id int,name varchar(10))')
print('python: create success!')
except (dmPython.Error, Exception) as err:
print(err)
try:
#插入数据
cursor.execute ("insert into sysdba.python_test values(10,'aa')")
cursor.execute ("insert into sysdba.python_test values(20,'bb')")
cursor.execute ("insert into sysdba.python_test values(30,'cc')")
print('python: insert success!')
#删除数据
cursor.execute ("delete from sysdba.python_test where id=10")
print('python: delete success!')
#更新数据
cursor.execute ("update sysdba.python_test set name='ww' where id=30")
print('python: update success!')
#查询数据
cursor.execute ("select name from sysdba.python_test")
res = cursor.fetchall()
for tmp in res:
for c1 in tmp:
print c1
print('python: select success!')
except (dmPython.Error, Exception) as err:
print(err)
conn.close()
except (dmPython.Error, Exception) as err:
print(err)
8.绑定变量测试
#!/usr/bin/python
#coding:utf-8
import dmPython
try:
conn = dmPython.connect(user='SYSDBA', password='Dameng123', server='localhost', port=5237)
cursor = conn.cursor()
print('python:connect success!')
try:
#清空表数据
cursor.execute ('delete from sysdba.python_test')
print('python:delete success!')
except (dmPython.Error, Exception) as err:
print(err)
try:
#插入数据
aa = [('test')]
cursor.execute ("insert into sysdba.python_test(name) values(?)", aa)
print('python: insert success!')
#查询数据
cursor.execute ("select name from sysdba.python_test")
res = cursor.fetchall()
for tmp in res:
for c1 in tmp:
print c1
print('python: select success!')
except (dmPython.Error, Exception) as err:
print(err)
conn.close()
except (dmPython.Error, Exception) as err:
print(err)
注意:脚本代码中除了要注意缩进外,还需要注意每个层级关系,若层级缩进不对,也许不会报错,但同时也不会有结果返回,比如绑定变量这个测试,当插入数据那段try缩进更多,则只会执行连接和清空数据,下面的都不会执行,也同时不会有报错信息返回,注意不能正确执行的脚本和能正确执行脚本红框处的不同
最终测试也正常了
更多资讯请上达梦技术社区了解:https://eco.dameng.com