【发布时间】:2015-07-31 18:16:54
【问题描述】:
问题是我正在尝试构建一个新的 python 应用程序,但由于某些奇怪的原因,我一直遇到 cx_Oracle 的问题。任何帮助将不胜感激!!!
当我这样做时,我可以很好地导入 cx_Oracle。
programmer@ubuntu:~/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'>
但是当我做这样的事情时
programmer@ubuntu:~/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
我已经检查并重新检查了我的路径,但我无法找出问题所在。这是我的路径
programmer@ubuntu:~/Python_app$ echo $ORACLE_HOME
/opt/oracle/instantclient_11_2
programmer@ubuntu:~/Python_app$ echo $LD_LIBRARY_PATH
/opt/oracle/instantclient_11_2
这是我的 /opt/oracle/instantclient_11_2 的概要
programmer@ubuntu:/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 的情况下尝试这个命令时,我得到了这个
programmer@ubuntu:~/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
还有一点很奇怪,它可以使用 python shell 导入 cx_Oracle 模块,但是在尝试创建新应用程序时不能这样做。 所以我不确定发生了什么。
【问题讨论】:
-
在没有
sudo的情况下运行它会发生什么? -
我在没有 sudo 的情况下尝试过,这就是我得到的程序员@ubuntu:~/Python_app$ python manage.py startapp help_desk CommandError: [Errno 13] Permission denied: '/home/programmer/Python_app/帮助台'@mmmmmpie
-
我认为您在安装中搞砸了权限。部分(如果不是全部)oracle 文件归 root 所有,但您的用户拥有正确的变量和路径设置。
-
这很有道理,你会建议我做什么来解决这个问题?我应该 chown 程序员 /opt/oracle/instantclient/ @mmmmmpie
-
你可以试试。重新安装需要付出多少努力?
标签: python django oracle11g cx-oracle