2015-05-19 84 views
2

問題是我正在嘗試構建一個新的python應用程序,但由於一些奇怪的原因,我一直對cx_Oracle有問題。任何幫助將不勝感激!!!不理解爲什麼我不能使用與Django一起使用cx_Oracle

當我這樣做時,我能夠導入cx_Oracle就好了。

[email protected]:~/Python_app$ python 
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cx_Oracle 
>>> 

>>> cx_Oracle 
<module 'cx_Oracle' from '/usr/local/lib/python2.7/dist-packages/cx_Oracle.so'> 

但是當我做這樣的事情

[email protected]:~/Python_app$ sudo python manage.py startapp help_desk 

我得到這個錯誤

Error loading cx_Oracle module: libclntsh.so.11.1: cannot open shared object file: No such file or directory 

我已經檢查和複查我的路,我無法弄清楚什麼是錯的。這裏是我的路徑

[email protected]:~/Python_app$ echo $ORACLE_HOME 
/opt/oracle/instantclient_11_2 

[email protected]:~/Python_app$ echo $LD_LIBRARY_PATH 
/opt/oracle/instantclient_11_2 

,這裏是我的/ opt/ORACLE的破舊/ instantclient_11_2

[email protected]:/opt/oracle/instantclient_11_2$ tree 

├── adrci 
├── BASIC_README 
├── genezi 
├── glogin.sql 
├── libclntsh.so -> libclntsh.so.11.1 
├── libclntsh.so.11.1 
├── libnnz11.so 
├── libocci.so.11.1 
├── libociei.so 
├── libocijdbc11.so 
├── libsqlplusic.so 
├── libsqlplus.so 
├── ojdbc5.jar 
├── ojdbc6.jar 
├── sdk 
│   ├── demo 
    │   │   ├── cdemo81.c 
    │   │   ├── demo.mk 
    │   │   ├── occidemod.sql 
    │   │   ├── occidemo.sql 
    │   │   ├── occidml.cpp 
    │   │   ├── occiobj.cpp 
    │   │   └── occiobj.typ 
│   ├── include 
    │   │   ├── ldap.h 
    │   │   ├── nzerror.h 
    │   │   ├── nzt.h 
    │   │   ├── occiAQ.h 
    │   │   ├── occiCommon.h 
    │   │   ├── occiControl.h 
    │   │   ├── occiData.h 
    │   │   ├── occi.h 
    │   │   ├── occiObjects.h 
    │   │   ├── oci1.h 
    │   │   ├── oci8dp.h 
    │   │   ├── ociap.h 
    │   │   ├── ociapr.h 
    │   │   ├── ocidef.h 
    │   │   ├── ocidem.h 
    │  │   ├── ocidfn.h 
    │   │   ├── ociextp.h 
    │   │   ├── oci.h 
    │   │   ├── ocikpr.h 
    │   │   ├── ocixmldb.h 
    │   │   ├── ocixstream.h 
    │   │   ├── odci.h 
    │   │   ├── oratypes.h 
    │   │   ├── orid.h 
    │   │   ├── ori.h 
    │   │   ├── orl.h 
    │   │   ├── oro.h 
    │   │   ├── ort.h 
    │   │   └── xa.h 
    │   ├── ott 
    │   ├── ottclasses.zip 
    │   └── SDK_README 
├── sqlplus 
├── SQLPLUS_README 
├── uidrvci 
└── xstreams.jar 

當我嘗試這個命令沒有sudo我得到這個基礎上

[email protected]:~/Python_app$ python manage.py startapp help_desk 
CommandError: [Errno 13] Permission denied: '/home/programmer/Python_app/help_desk' 

評論我認爲這與我的權限有關,這裏是opt/oracle/instantclient_11_2的權限

-rwxrwxr-x 1 root root  25420 Aug 24 2013 adrci 
    -rw-rw-r-- 1 root root  439 Aug 24 2013 BASIC_README 
    -rwxrwxr-x 1 root root  47860 Aug 24 2013 genezi 
    -r-xr-xr-x 1 root root  368 Aug 24 2013 glogin.sql 
    lrwxrwxrwx 1 root root  17 May 19 14:53 libclntsh.so -> libclntsh.so.11.1 
    -rwxrwxr-x 1 root root 53865194 Aug 24 2013 libclntsh.so.11.1 
    -r-xr-xr-x 1 root root 7996693 Aug 24 2013 libnnz11.so 
    -rwxrwxr-x 1 root root 1973074 Aug 24 2013 libocci.so.11.1 
    -rwxrwxr-x 1 root root 118738042 Aug 24 2013 libociei.so 
    -r-xr-xr-x 1 root root 164942 Aug 24 2013 libocijdbc11.so 
    -r-xr-xr-x 1 root root 1502287 Aug 24 2013 libsqlplusic.so 
    -r-xr-xr-x 1 root root 1469542 Aug 24 2013 libsqlplus.so 
    -r--r--r-- 1 root root 2091135 Aug 24 2013 ojdbc5.jar 
    -r--r--r-- 1 root root 2739616 Aug 24 2013 ojdbc6.jar 
    drwxrwxr-x 4 root root  4096 Aug 24 2013 sdk 
    -r-xr-xr-x 1 root root  9320 Aug 24 2013 sqlplus 
    -rw-rw-r-- 1 root root  443 Aug 24 2013 SQLPLUS_README 
    -rwxrwxr-x 1 root root 192365 Aug 24 2013 uidrvci 
    -rw-rw-r-- 1 root root  66779 Aug 24 2013 xstreams.jar 

還有一件事可以導入cx_Oracle模塊使用python shell,但是,不能在嘗試創建新應用程序時執行此操作。 所以我不知道發生了什麼事情。

+0

當你沒有'sudo'運行它會發生什麼? – mmmmmpie

+0

我試過沒有sudo,這是我得到的程序員@ ubuntu:〜/ Python_app $ python manage.py startapp help_desk CommandError:[Errno 13] Permission denied:'/ home/programmer/Python_app/help_desk'@mmmmmpie – Snowman

+0

I認爲你已經搞亂了安裝的權限。一些(如果不是全部)oracle文件由root擁有,但是你的用戶有適當的變量和路徑設置。 – mmmmmpie

回答

0

好吧,我想通了。是的,這與我的權限有關。 sudo看不到ORACLE_HOME,所以我所做的只是添加Defaults env_keep += "ORACLE_HOME"sudo visudo並且工作!感謝您的幫助@ mmmmmpie。

+0

只需注意......不要以root身份運行應用程序/數據庫。 – mmmmmpie

+0

我是一個rails開發人員,並且慢慢地開始使用python,因此爲oracle提供了寶石,這是ruby-OCI8,這是一個噩夢,有時候我會開始工作,我非常確定這就是爲什麼我的db只是爲了簡單的事實OCI8感到惱火,我想安裝它,所以重新安裝了一切,沒有任何問題,作爲一個用戶沒有根,它一切正常。但任何如何感謝您的建議@ mmmmmpie – Snowman

相關問題