首页 > Python资料 博客日记
记录一下麒麟3.0内网安装python通过jdbc连接达梦6数据库
2024-06-20 17:00:03Python资料围观93次
麒麟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
# 解压 tar -zxvf Python-2.7.18.tgz # 切换到新的目录下 cd 2.7.18/ # 执行configure并且设置新python要装在的位置 ./configure --prefix=/usr/local/python2 # 清除上次的make命令所产生的object文件(后缀为".o"的文件)及可执行文件 make clean # 根据Makefile文件编译源代码、连接、生成目标文件、可执行文件 make # 将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录 make install
2、 安装setuptools-42,JPype1和JayDeBeApi基于该依赖
https://files.pythonhosted.org/packages/ab/41/ab6ae1937191de0c9cbc115d0e91e335f268aa1cd85524c86e5970fdb68a/setuptools-42.0.0.zip
# 解压,也可以在windows下解压 uzip setuptools-42.0.0.zip # 切换到新的目录下 cd setuptools-42.0.0 # 安装 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
# 解压 tar -zxvf JPype1-0.6.3.tar.gz # 切换到新的目录下 cd JPype1-0.6.3 # 安装 python setup.py install
4、安装JayDeBeApi-1.2.3
https://files.pythonhosted.org/packages/5c/8c/f27750106bf1fba33f92d83fb866af164179f7046495bc5a61fae26d9475/JayDeBeApi-1.2.3.tar.gz
# 解压 tar -zxvf JayDeBeApi-1.2.3.tar.gz # 切换到新的目录下 cd JayDeBeApi-1.2.3 # 安装 python setup.py install
5、配置java环境变量,下载JDK,解压导入如下环境变量,JayDeBeApi基于java运行环境
export JAVA_HOME=/usr/local/jdk1.8.0_271 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
6、测试连接
#导入jaydebeapi import jaydebeapi #配置dm数据库链接127.0.0.1是数据库IP,4631是数据库端口,test是数据库名 url = 'jdbc:dm://127.0.0.1:4631/test' #用户名 user = 'DBA' #密码 password = 'DBA' #驱动名,默认 dirver = 'dm.jdbc.driver.DmDriver' #达梦jdbc驱动,你服务器jar位置 jarFile = '/opt/dmdbms/jar/DmJdbcDriver.jar' #查询sql语句,tes.test.sys_user是数据库名.模式名.表名 sqlStr = 'select count(1) from test.test.sys_user' #创建数据库连接,传入参数 conn = jaydebeapi.connect(dirver, url, [user, password], jarFile) #创建游标 curs=conn.cursor() #执行sql语句 curs.execute(sqlStr) #接收执行结果 result=curs.fetchall() #输出执行结果 print(result) #关闭游标 curs.close() #关闭数据库连接 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,这种方法比较麻烦
import sys sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/JPype1-0.6.3-py2.7-linux-x86_64.egg') sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/JayDeBeApi-1.2.3-py2.7.egg') sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/setuptools-42.0.0-py2.7.egg')
最后希望我的文章能给予你思路。
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj