2015-05-19 5 views
2

Вопрос: Я пытаюсь создать новое приложение python, но по какой-то странной причине у меня проблема с cx_Oracle. Любая помощь будет принята с благодарностью!Не понимаю, почему я не могу использовать cx_Oracle с Django

Когда я это делаю, я могу импортировать 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/оракул/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 

Когда я пытаюсь эту команду без Судо я получаю это

[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, но не могу сделать это при попытке создать новое приложение. Так что я не уверен, что происходит.

+0

Что происходит, когда вы запускаете его без 'sudo'? – mmmmmpie

+0

Я пробовал это без sudo, и это то, что я получил программист @ ubuntu: ~/Python_app $ python manage.py startapp help_desk CommandError: [Errno 13] Разрешение отклонено: '/ home/programmer/Python_app/help_desk' @mmmmmpie – Snowman

+0

I подумайте, что вы нарушили разрешения внутри своей установки. Некоторые (если не все) файлы оракула принадлежат root, но ваш пользователь имеет правильные переменные и настройки пути. – mmmmmpie

ответ

0

Хорошо, я понял. Да, это как-то связано с моими разрешениями. sudo не мог видеть ORACLE_HOME, поэтому все, что я сделал, это добавить Defaults env_keep += "ORACLE_HOME" в sudo visudo и работал! Спасибо за помощь @mmmmmpie.

+0

Просто заметьте ... не запускайте приложения/базы данных как root. – mmmmmpie

+0

Я рельс dev, и медленно двигаюсь, чтобы работать с python, поэтому рельсы для камня для оракула - ruby-OCI8, который является кошмаром, чтобы иногда работать, я вполне уверен, что мой db был root только для простого факта от раздражения с OCI8, и я хотел установить его, чтобы переустановить все без каких-либо проблем, поскольку пользователь не root, и все это работало нормально. но любой, как спасибо за совет @mmmmmpie – Snowman

Смежные вопросы