Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不明白为什么我不能将cx_Oracle与Django一起使用_Python_Django_Oracle11g_Cx Oracle - Fatal编程技术网

Python 不明白为什么我不能将cx_Oracle与Django一起使用

Python 不明白为什么我不能将cx_Oracle与Django一起使用,python,django,oracle11g,cx-oracle,Python,Django,Oracle11g,Cx Oracle,问题是,我正在尝试构建一个新的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 "licens

问题是,我正在尝试构建一个新的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'>
我得到这个错误

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
下面是my/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
  -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
当我在没有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的权限

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
  -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
还有一件事,它的wierd可以使用pythonshell导入cx_Oracle模块,但在尝试创建新应用程序时无法做到。。
所以我不确定发生了什么

好吧,我知道了。是的,这和我的权限有关
sudo
无法查看
ORACLE\u HOME
,所以我所做的就是将
Defaults env\u keep+=“ORACLE\u HOME”
添加到
sudo visudo
中,然后工作了!谢谢你的帮助@mmmmm pie。

如果你不使用
sudo
运行它会发生什么?我在没有sudo的情况下尝试了它,这就是我得到的programmer@ubuntu:~/Python\u应用程序$Python manage.py startapp帮助\u桌面命令错误:[错误号13]权限被拒绝:'/home/programmer/Python_app/help_desk'@mmmmm pie我想你已经把安装中的权限搞砸了。部分(如果不是全部)oracle文件归root所有,但您的用户具有适当的变量和路径设置。这很有意义,您建议我如何解决此问题?如果我想问程序员/opt/oracle/instantclient/@mmmmm,你可以试试。重新安装它需要花费多少精力?只是一个提示。。。不要以root用户身份运行应用程序/数据库。我是一名rails开发人员,慢慢开始使用python,因此rails oracle的gem是ruby-OCI8,这有时是一场噩梦,我很确定这就是为什么我的db是root的原因,只是因为我对OCI8很恼火,我想安装它,所以作为一个用户而不是root重新安装了所有的东西,一切都很好。但无论如何,谢谢你的建议