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动态库没有依赖。

目录
相关文章
|
26天前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
209 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
28天前
|
XML 数据格式 Python
Python实用记录(五):labelImg安装和使用-----看这篇就够了!
这篇文章介绍了在Windows 10系统中使用Anaconda3安装labelImg工具的方法,包括通过pip安装相关包和从GitHub下载配置,以及一些使用技巧,如修改预定义类别和自动保存功能。
146 3
|
27天前
|
网络协议 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访问网络视频流的技巧。
126 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
30天前
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
58 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
|
23天前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
48 2
|
24天前
|
Python
Python 三方库下载安装
Python 三方库下载安装
21 1
|
26天前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
302 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
29天前
|
Python
Jetson环境安装(二):ubuntu18.0卸载和安装python3
在Jetson Nano上如何卸载Python 3.7并重新安装Python 3.7.0版本的详细步骤,包括卸载命令、安装依赖库、下载和编译Python源码以及建立软链接等。
44 2
|
24天前
|
SQL Oracle 关系型数据库
Python连接Oracle
Python连接Oracle
16 0
|
24天前
|
Python
【python从入门到精通】-- 第一战:安装python
【python从入门到精通】-- 第一战:安装python
45 0