gpt4 book ai didi

python - 不明白为什么我不能在 Django 中使用 use cx_Oracle

转载 作者:行者123 更新时间:2023-12-05 07:55:10 25 4
gpt4 key购买 nike

问题是我正在尝试构建一个新的 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 看不到 ORACLE_HOME,所以我所做的就是将 Defaults env_keep += "ORACLE_HOME" 添加到 sudo visudo > 并且成功了!感谢您的帮助@mmmmmpie。

关于python - 不明白为什么我不能在 Django 中使用 use cx_Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30333766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com