翼度科技»论坛 编程开发 python 查看内容

记录一下麒麟3.0内网安装python通过jdbc连接达梦6数据库

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
麒麟3.0基于Red Hat 4.1.2-42,此版本可以编译python3.8.3,但是内网无法安装libffi-dev,导致无法安装JPype1和JayDeBeApi,所以改用python2.7.18
1、安装python2.7.18
https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
  1. # 解压
  2. tar -zxvf Python-2.7.18.tgz
  3. # 切换到新的目录下
  4. cd 2.7.18/
  5. # 执行configure并且设置新python要装在的位置
  6. ./configure --prefix=/usr/local/python2
  7. # 清除上次的make命令所产生的object文件(后缀为".o"的文件)及可执行文件
  8. make clean
  9. # 根据Makefile文件编译源代码、连接、生成目标文件、可执行文件
  10. make
  11. # 将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录
  12. make install
复制代码
2、 安装setuptools-42,JPype1和JayDeBeApi基于该依赖
https://files.pythonhosted.org/packages/ab/41/ab6ae1937191de0c9cbc115d0e91e335f268aa1cd85524c86e5970fdb68a/setuptools-42.0.0.zip
 
  1. # 解压,也可以在windows下解压
  2. uzip setuptools-42.0.0.zip
  3. # 切换到新的目录下
  4. cd setuptools-42.0.0
  5. # 安装
  6. python setup.py install
复制代码
3、安装JPype1-0.6.3,高版本的JPype1麒麟环境无法编译通过,JayDeBeApi基于JPype1
https://files.pythonhosted.org/packages/c4/4b/60a3e63d51714d4d7ef1b1efdf84315d118a0a80a5b085bb52a7e2428cdc/JPype1-0.6.3.tar.gz
  1. # 解压
  2. tar -zxvf JPype1-0.6.3.tar.gz
  3. # 切换到新的目录下
  4. cd JPype1-0.6.3
  5. # 安装
  6. python setup.py install
复制代码
4、安装JayDeBeApi-1.2.3
https://files.pythonhosted.org/packages/5c/8c/f27750106bf1fba33f92d83fb866af164179f7046495bc5a61fae26d9475/JayDeBeApi-1.2.3.tar.gz
  1. # 解压
  2. tar -zxvf JayDeBeApi-1.2.3.tar.gz
  3. # 切换到新的目录下
  4. cd JayDeBeApi-1.2.3
  5. # 安装
  6. python setup.py install
复制代码
5、配置java环境变量,下载JDK,解压导入如下环境变量,JayDeBeApi基于java运行环境
  1. export JAVA_HOME=/usr/local/jdk1.8.0_271
  2. export JRE_HOME=${JAVA_HOME}/jre  
  3. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
  4. export PATH=${JAVA_HOME}/bin:$PATH
复制代码
6、测试连接
  1. #导入jaydebeapi
  2. import jaydebeapi
  3. #配置dm数据库链接127.0.0.1是数据库IP,4631是数据库端口,test是数据库名
  4. url = 'jdbc:dm://127.0.0.1:4631/test'
  5. #用户名
  6. user = 'DBA'
  7. #密码
  8. password = 'DBA'
  9. #驱动名,默认
  10. dirver = 'dm.jdbc.driver.DmDriver'
  11. #达梦jdbc驱动,你服务器jar位置
  12. jarFile = '/opt/dmdbms/jar/DmJdbcDriver.jar'
  13. #查询sql语句,tes.test.sys_user是数据库名.模式名.表名
  14. sqlStr = 'select count(1) from test.test.sys_user'
  15. #创建数据库连接,传入参数
  16. conn = jaydebeapi.connect(dirver, url, [user, password], jarFile)
  17. #创建游标
  18. curs=conn.cursor()
  19. #执行sql语句
  20. curs.execute(sqlStr)
  21. #接收执行结果
  22. result=curs.fetchall()
  23. #输出执行结果
  24. print(result)
  25. #关闭游标
  26. curs.close()
  27. #关闭数据库连接
  28. conn.close()
复制代码
7、遇到的问题
普通用户导入jaydebeapi无此模块,在root用户下可以import,jaydebeapi、JPype1、setuptools安装在/usr/local/python2.7/lib/python2.7/site-packages下,正常权限如下图,本人在另外一台服务安装权限却只有700,导致普通用户下无法导入模块,请检查模块是有访问权限,包括JPype1子目录权限

或者在python代码中导入import,jaydebeapi、JPype1、setuptools的path,这种方法比较麻烦
  1. import sys
  2. sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/JPype1-0.6.3-py2.7-linux-x86_64.egg')
  3. sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/JayDeBeApi-1.2.3-py2.7.egg')
  4. sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/setuptools-42.0.0-py2.7.egg')
复制代码
最后希望我的文章能给予你思路。
 

来源:https://www.cnblogs.com/jiongSpace/p/18258908
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具