2013-11-22 287 views
0

我有一段時間試圖安裝cx_Oracle。在Centos 6上安裝cx_Oracle

我試過各種版本的Oracle庫。我最近得到與32位的11.1庫

oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm 
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm 
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm 

我必須設置環境變量的: [〜]#集| grep -i oracle PATH =/usr/lib/oracle/11.1/client/lib ORACLE_HOME =/usr/lib/oracle/11.1/client/lib LD_LIBRARY_PATH =/usr/lib/oracle/11.1/client/lib: :/家庭/ sekingerg /斌:/usr/lib64/qt-3.3/bin:在/ usr/local/sbin中:在/ usr/local/bin目錄:/ sbin目錄:/ bin中:/ usr/sbin目錄:在/ usr/bin中:/根/斌:/root/.rvm/bin SQLPATH =/usr/lib目錄/ ORACLE/11.1 /客戶/ lib目錄下:

,當我運行pipinstall,它未能找到包含文件:

[~]# pip install cx_Oracle 
Downloading/unpacking cx-Oracle 
    Running setup.py egg_info for package cx-Oracle 
    Traceback (most recent call last): 
     File "<string>", line 16, in <module> 
     File "/tmp/pip-build-root/cx-Oracle/setup.py", line 180, in <module> 
     raise DistutilsSetupError("cannot locate Oracle include files") 
    distutils.errors.DistutilsSetupError: cannot locate Oracle include files 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 

    File "<string>", line 16, in <module> 

    File "/tmp/pip-build-root/cx-Oracle/setup.py", line 180, in <module> 

    raise DistutilsSetupError("cannot locate Oracle include files") 

distutils.errors.DistutilsSetupError: cannot locate Oracle include files 

---------------------------------------- 
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-root/cx-Oracle 
Storing complete log in /root/.pip/pip.log 

下面是已安裝的RPM:

[~]# rpm -qa | grep -i oracle 
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386 
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386 
oracle-instantclient11.1-basic-11.1.0.7.0-1.i386 
[~]# 

我也嘗試安裝cx_Oracle rpm:cx_Oracle-5.1.2-11g-py33-1.x86_64.rpm,但這也不起作用。

[~]# rpm -ipv cx_Oracle-5.1.2-11g-py33-1.x86_64.rpm 
Preparing packages for installation... 
cx_Oracle-5.1.2-1 

但是在安裝之後,仍然無法識別。

[~]# python3 
Python 3.3.2 (default, Nov 18 2013, 12:27:03) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cx_Oracle 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'cx_Oracle' 
>>> 

回答

1

我在Debian的前寫這個劇本約一歲,安裝cx_Oracle:

TMP_ORACLE_HOME="/usr/lib/oracle/11.2/client64" 
dpkg -i $PWD/libpython3.2_3.2.3-2_amd64.deb 
dpkg -i $PWD/libaio1_0.3.107-7_amd64.deb 
dpkg -i $PWD/oracle-instantclient11.2-basic_11.2.0.3.0-2_amd64.deb 
echo "$TMP_ORACLE_HOME/lib" > /etc/ld.so.conf.d/oracle.conf 
echo "export ORACLE_HOME=$TMP_ORACLE_HOME" > /etc/profile.d/oracle.sh 
dpkg -i $PWD/cx-oracle_5.1.2-2-py32_amd64.deb 
cd /usr/lib/python3.2 
mv site-packages dist-packages 
ln -s dist-packages site-packages 
ldconfig 
+0

這確實幫助了很多,但我仍然不能得到模塊正常加載。它找不到像核心庫'$ python3.3 Python 3.3.3(默認,2013年12月2日,16:16:04) [GCC 4.4.7 20120313(Red Hat 4.4.7-4)] on linux 請輸入「help」,「copyright」,「credits」或「license」以獲取更多信息。 >>>進口cx_Oracle 回溯(最近通話最後一個): 文件「」,1號線,在 導入錯誤:libpython3.3m.so.1.0:無法打開共享對象文件:沒有這樣的文件或目錄 > >>任何想法? – SecondGear

0

沒有什麼我沒能解決的問題庫。雖然Farhadix的建議是有用的,做一個「進口cx_Oracle」時,我無法擺脫這種錯誤:

ImportError: libpython3.3m.so.1.0: cannot open shared object file: No such file or directory 

我結束了去除cx_Oracle包(RPM -e cx_Oracle-5.1.2-1.x86_64)和按照來自here的指示從源代碼構建模塊。這就是我需要做的,以便使用python 3.3擴展到CentOS 6.4。

0

我也遇到過這種情況。由於安裝需要「sudo」權限才能進行「pip安裝」,因此問題是一個權限問題。

注:我使用的是Oracle Linux 6中,這樣的情況可能有所不同

下面是目錄列表,其中cx_Oracle.so是繼建,所以你可以看到默認的權限(比較cx_Freeze,例如發送,它擁有世界上訪問):

[[email protected] /]$ ll /usr/lib64/python2.6/site-packages 
total 4308 
drwxr-xr-x 5 root root 4096 Jan 17 09:48 cx_Freeze 
drwxr-x--- 2 root root 4096 Jan 17 11:30 cx_Oracle-5.1.2-py2.6.egg-info 
-rwxr-x--- 1 root root 351475 Jan 17 11:30 cx_Oracle.so 

我能認同;下面,執行Python作爲根這個問題,然後 「進口cx_Oracle」 作品:

[[email protected] cx_OracleTools-8.0]$ sudo ORACLE_HOME=/usr/lib/oracle/11.2/client64 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client64/lib python 
Python 2.6.6 (r266:84292, Oct 15 2013, 07:32:41) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cx_Oracle 
>>> 

所以......我用錘子將它擊中頭部......並讓我的用戶擁有它(這是錯誤的解決方案,無可否認,可能會有後續的後果。 - 我很想聽聽,讓我流浪的用戶以正確的方式「PIP安裝」

希望這有助於, Ĵ

+0

你應該使用virtualenv http://www.pythoncentral.io/how-to-install-virtualenv-python/(我推薦在virtualenv-wrapper中使用virtualenv https://pypi.python.org/pypi/virtualenvwrapper)。然後你有獨立的python環境,你可以將'pip install'安裝到你的virtualenv中。 – k107