linux上,python3脚本中用cx_Oracle连接oracle数据库报Segmentation fault (core dumped)
2020-11-13 13:28 安达小狗 阅读(961) 评论(0) 编辑 收藏 举报开发时在windows上进行的,没有遇到连接数据库的错误,但是迁移到linux环境执行时,遇到了这个问题。详细讲一下过程。
1、环境:CentOS 6.5 , Oracle: 12.2 , python3.6, instantclient_19_9, cx_Oracle 8.0.1
开始使用时提示GLIBC 2.14 没有,因为服务器自带的是 GLIBC2.12 ,所以重新安装了2.14,
配置好以上环境后,执行脚本,连接数据库时总是报错: Segmentation fault (core dumped) ,但是在python的交互模式却可以正常连接.
查了好久,也没找到解决办法,最后看到一个帖子: https://stackoverflow.com/questions/58100432/segmentation-error-when-using-cx-oracle-with-pandas 才得以解决,因此记录下.
2、主要原因是脚本中同时import pandas 了,去掉pandas后,脚本就可以正常执行了,不再报错.
但是我们还是需要pandas的,所以继续参考上边那个帖子,降低instantclient的版本,到18,18使用GLIBC2.12 就可以了,于是下载18,打开这个网页,往下滚动,找到该版本
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html ,下载红框标记的这个就可以:
下载后,解压,并添加到LD_LIBRARY_PATH中即可.
然后将之前环境变量中添加的glibc2.14 的环境变量去掉,就可以了.
再测试脚本,Segmentation fault (core dumped) 得到了完美解决.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架