Вопрос: Я пытаюсь создать новое приложение 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, но не могу сделать это при попытке создать новое приложение. Так что я не уверен, что происходит.
Что происходит, когда вы запускаете его без 'sudo'? – mmmmmpie
Я пробовал это без sudo, и это то, что я получил программист @ ubuntu: ~/Python_app $ python manage.py startapp help_desk CommandError: [Errno 13] Разрешение отклонено: '/ home/programmer/Python_app/help_desk' @mmmmmpie – Snowman
I подумайте, что вы нарушили разрешения внутри своей установки. Некоторые (если не все) файлы оракула принадлежат root, но ваш пользователь имеет правильные переменные и настройки пути. – mmmmmpie