python cx_Oracle静态编译安装

简介:

cx_Oracle是python连Oracle常用的lib,今天介绍如何使用静态链接的方式build cx_Oracle,避免对oracle共享库的依赖。

首先需要生成oracle客户端的静态lib:

cd $ORACLE_HOME/bin

./genclntst
ar: creating /u01/app/oracle/product/11.2.0/db_1/lib/libclntst11.a
Created /u01/app/oracle/product/11.2.0/db_1/lib/libclntst11.a

再build cx_Oracle

python setup.py build
running build
running build_ext
building 'cx_Oracle' extension
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/usr/include/python2.6 -c cx_Oracle.c -o build/temp.linux-x86_64-2.6-11g/cx_Oracle.o -DBUILD_VERSION=5.2.1
creating build/lib.linux-x86_64-2.6-11g
gcc -pthread -shared build/temp.linux-x86_64-2.6-11g/cx_Oracle.o -L/u01/app/oracle/product/11.2.0/db_1/lib -L/usr/lib64 -lclntsh -lpython2.6 -o build/lib.linux-x86_64-2.6-11g/cx_Oracle.so

最后一行命令,使用了-lclntsh来链接Oracle的客户端动态库,我们需要把这个改成静态lib就可以了

gcc -pthread -shared build/temp.linux-x86_64-2.6-11g/cx_Oracle.o   /u01/app/oracle/product/11.2.0/db_1/lib/libclntst11.a  -L/usr/lib64  -lpython2.6 -o build/lib.linux-x86_64-2.6-11g/cx_Oracle.so

再运行

python setup.py install
running install
running bdist_egg
...
creating 'dist/cx_Oracle-5.2.1-py2.6-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it

在dist目录下生成了cx_Oracle-5.2.1-py2.6-linux-x86_64.egg,这个就是可以直接使用的cx_Oracle,对oracle动态库没有依赖。

目录
相关文章
|
1月前
|
IDE 开发工具 索引
在Python中安装第三方库
在Python中安装第三方库
509 30
|
2月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
344 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
7天前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
1月前
|
存储 JSON 网络安全
使用 EFS 在 AWS Lambda 上安装 Python 依赖项
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
31 1
|
1月前
|
Ubuntu Linux iOS开发
安装Python
安装 Python 是相对简单的过程,但需要根据不同的操作系统选择合适的方法。同时,合理使用虚拟环境可以更好地管理项目的依赖和环境,提高开发效率。希望这些步骤和注意事项能帮助你顺利安装 Python。
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
470 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
96 2
|
2月前
|
Python
Python 三方库下载安装
Python 三方库下载安装
35 1
|
2月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
552 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
2月前
|
SQL Oracle 关系型数据库
Python连接Oracle
Python连接Oracle
28 0