2011-06-22 115 views
0

我使用的是活動Python,因爲我不想被舊版本的Python卡住。我安裝了即時客戶端,增加了出口到我的bash的個人資料,但我發現了這個神祕的錯誤:如何在RHEL上安裝Python的cx_Oracle?

 
# apy setup.py install --no-compile --root=/tmp/tmpz0JuWASA/cx_Oracle-5.1/_pypminstroot 
running install 
running build 
running build_ext 
building 'cx_Oracle' extension 
gcc -pthread -fno-strict-aliasing -fPIC -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/oracle/11.2/sdk/include -I/opt/ActivePython-2.7/include/python2.7 -c cx_Oracle.c -o build/temp.linux-x86_64-2.7-11g/cx_Oracle.o -DBUILD_VERSION=5.0.4 
In file included from /opt/ActivePython-2.7/include/python2.7/Python.h:58, 
       from cx_Oracle.c:6: 
/opt/ActivePython-2.7/include/python2.7/pyport.h:849:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." 
In file included from /usr/lib/oracle/11.2/sdk/include/oci.h:3029, 
       from cx_Oracle.c:10: 
/usr/lib/oracle/11.2/sdk/include/ociap.h:10788: warning: function declaration isn’t a prototype 
/usr/lib/oracle/11.2/sdk/include/ociap.h:10794: warning: function declaration isn’t a prototype 
error: command 'gcc' failed with exit status 1 

回答

-2

首先,積極的狀態分佈是另一種分佈,它總是遵循從python.org釋放。所以你也可以從python.org獲得最新版本。我想,你的意思是系統安裝的python可能會稍微老一點。

其次,在你的Redhat安裝中,檢查你是否已經安裝了開發工具和頭文件,如gcc,glibc等,here是一些在cx_Oracle頁面給出的構建指令。確保你已經跟着他們。

+0

我從來沒有說過我在說什麼py,我只是想說我不想用RHEL自帶的python 2.4。我完全按照方向。這些說明不起作用,GCC失敗。 – blackrobot

2

如果您需要更多詳細信息,我從這個博客here採取了所有這一切。

我做到了這一點,它的工作完美。這是簡要的總結。 首先去獲得Oracle客戶端工具和您的Oracle版本(鏈接在博客)

然後下載到你的/ tmp /文件夾,然後運行安裝

rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm 

現在,這是我努力的一部分,確保你所有的環境變量都是正確的。也不要只是複製這些,去確認你的oracle的東西安裝。

echo export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.4/client64/lib/ >> ~/.bashrc 
echo export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client64 >> ~/.bashrc 
echo export PATH=$ORACLE_HOME/bin:$PATH >> ~/.bashrc 

現在你可以去ox_Oracle網站,請務必下載符合你的Python版本的版本(如果你不能確定執行python -V)和你的Oracle驅動程序的版本。

下載到您的TMP文件夾,安裝和測試與

python -c "import cx_Oracle" 

如果不工作檢查的博客,也許我錯過了什麼。它在我的全新安裝上工作。謝天謝地。

對不起...沒有足夠的信譽點給予更多的實時鏈接...所以你必須複製粘貼或轉到博客。

0

確保您的客戶端sdk存在於您的路徑中。我試過的Oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm沒有附帶sdk。所以我不得不下載zip版本。

添加這.bash_rc

export DYLD_LIBRARY_PATH=$ORACLE_HOME 

除此之外,Python 2.7版不來與Python.h這是默認提供的Python 3.4。所以我也建議安裝python-devel軟件包

yum install python-devel 

這應該可以解決這個問題。