cx_Oracle 离线编译填坑

3 篇文章 1 订阅

离线隔离网络的情况下,下载好所需的gcc-c++  python-devel...等基础环境 (离线试用rpm安装的)

编译cx_Oracle时无法build出cx_Oracle.so文件导致报错(非离线情况下无此问题)如下:

python setup.py build:

2.7/src/cxoMsgProps.o build/temp.linux-x86_64-2.7/src/cxoObject.o build/temp.linux-x86_64-2.7/src/cxoObjectAttr.o build/temp.linux-x86_64-2.7/src/cxoObjectType.o build/temp.linux-x86_64-2.7/src/cxoSessionPool.o build/temp.linux-x86_64-2.7/src/cxoSubscr.o build/temp.linux-x86_64-2.7/src/cxoTransform.o build/temp.linux-x86_64-2.7/src/cxoUtils.o build/temp.linux-x86_64-2.7/src/cxoVar.o build/temp.linux-x86_64-2.7/src/cxoVarType.o build/temp.linux-x86_64-2.7/odpi/src/dpiConn.o build/temp.linux-x86_64-2.7/odpi/src/dpiContext.o build/temp.linux-x86_64-2.7/odpi/src/dpiData.o build/temp.linux-x86_64-2.7/odpi/src/dpiDebug.o build/temp.linux-x86_64-2.7/odpi/src/dpiDeqOptions.o build/temp.linux-x86_64-2.7/odpi/src/dpiEnqOptions.o build/temp.linux-x86_64-2.7/odpi/src/dpiEnv.o build/temp.linux-x86_64-2.7/odpi/src/dpiError.o build/temp.linux-x86_64-2.7/odpi/src/dpiGen.o build/temp.linux-x86_64-2.7/odpi/src/dpiGlobal.o build/temp.linux-x86_64-2.7/odpi/src/dpiHandleList.o build/temp.linux-x86_64-2.7/odpi/src/dpiHandlePool.o build/temp.linux-x86_64-2.7/odpi/src/dpiLob.o build/temp.linux-x86_64-2.7/odpi/src/dpiMsgProps.o build/temp.linux-x86_64-2.7/odpi/src/dpiObject.o build/temp.linux-x86_64-2.7/odpi/src/dpiObjectAttr.o build/temp.linux-x86_64-2.7/odpi/src/dpiObjectType.o build/temp.linux-x86_64-2.7/odpi/src/dpiOci.o build/temp.linux-x86_64-2.7/odpi/src/dpiOracleType.o build/temp.linux-x86_64-2.7/odpi/src/dpiPool.o build/temp.linux-x86_64-2.7/odpi/src/dpiRowid.o build/temp.linux-x86_64-2.7/odpi/src/dpiStmt.o build/temp.linux-x86_64-2.7/odpi/src/dpiSubscr.o build/temp.linux-x86_64-2.7/odpi/src/dpiUtils.o build/temp.linux-x86_64-2.7/odpi/src/dpiVar.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/cx_Oracle.so
collect2: fatal error: cannot find 'ld'
compilation terminated.
error: command 'gcc' failed with exit status 1


看日志:

collect2: fatal error: cannot find 'ld'
ld是没问题的, 那么就去build所在的目标文件夹去看看

build/lib.linux-x86_64-2.7/cx_Oracle.so

进入./build/lib.linux-x86_64-2.7文件夹发现没有cx_Oracle.so文件

故才报异常 :

collect2: fatal error: cannot find 'ld'
compilation terminated.
error: command 'gcc' failed with exit status 1



终极.....解决方案:

其他同样环境设备上去编译好cx_Oracle.so 直接拿来放到目标 ./build/lib.linux-x86_64-2.7文件夹下

然后:

python setup.py install

即可!!!



注意:

离线环境我是python2.7.5,  centos 7.3, 

- 第一次用其他设备(python2.6.6...  centos 6.5)编译, 发现执行上述操作后, 仍然能够install成功, pip list也能看到成功,  但是 用python shell测试 导入时 仍然报错 失败 提示 python 2.6.6的问题

- 第二次使用 python2.7.3, centos 7.1 操作...后面一切正常


PS: 另还有其他常见异常  安装cx_Oracle成功后, 在python使用过程中, 会继续报oracle的错误, 此时需要去oracle官网下载instantclient,  然后把其下面的库共享到环境变量LD_LIBRARY_PATH

export LD_LIBRARY_PATH=xxxxxxxxxxxxx/instantclient_12_2:$LD_LIBRARY_PATH


记得 刷新  reource /etc/profile





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pushkin.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值