Skip to main content
 首页 » 编程设计

python之cx_oracle OSX 安装错误

2025年05月04日9kerrycode

所以我按照此处的说明安装 Oracle InstantClient,

installing Oracle Instantclient on Mac OS/X without setting environment variables?

但是当我尝试安装 cx_oracle 时,我得到以下堆栈跟踪,

python setup.py build 
running build  
running build_ext 
building 'cx_Oracle' extension 
creating build 
creating build/temp.macosx-10.6-universal-2.6-10g 
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -I/usr -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c cx_Oracle.c -o build/temp.macosx-10.6-universal-2.6-10g/cx_Oracle.o -DBUILD_VERSION=5.1.1 
creating build/lib.macosx-10.6-universal-2.6-10g 
gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup -arch i386 -arch ppc -arch x86_64 build/temp.macosx-10.6-universal-2.6-10g/cx_Oracle.o -L/usr/lib -lclntsh -o build/lib.macosx-10.6-universal-2.6-10g/cx_Oracle.so -shared-libgcc 
ld: library not found for -lclntsh 
collect2: ld returned 1 exit status 
ld: library not found for -lclntsh 
collect2: ld returned 1 exit status 
ld: library not found for -lclntsh 
collect2: ld returned 1 exit status 
lipo: can't open input file: /var/folders/5Q/5QMpI35VGumn0wxJwdndr-r4BJ+/-Tmp-//ccG0USbB.out (No such file or directory) 
error: command 'gcc-4.2' failed with exit status 1 

我在这里做错了什么?我在安装 InstantClient 时是否遗漏了什么?

复制的库列表

bnnz10.dylib  
libociei.dylib  
libsqlplusic.dylib  
libclntsh.dylib.10.1  
libocci.dylib.10.1  
libocijdbc10.dylib  
libsqlplus.dylib 

请您参考如下方法:

您没有要链接的 clntsh 库

要解决此问题,您需要在/usr/lib 中将 libclntsh.dylib.10.1 链接到 libclntsh.dylib 并将 libocci.dylib.10.1 链接到 libocci.dylib

请注意,我没有 oracle 库,因此无法确认这是否足够。