我在Apache 2.4,Suse 11中设置了Django。
Apache没有问题。如果我没有在Setting.py中放置任何数据库连接信息,则可以打开索引页面而不会出现任何问题。当我输入数据库信息,然后尝试访问索引页面时,我在Apache错误输出中看到下面的数据库错误。
但是,如果我只运行'python',然后'将cx_Oracle导入为数据库',则没有错误。
我还在httpd.conf中放了'PassEnv LD_LIBRARY_PATH'和'PassEnv PATH'。
Oracle Env变量是:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH
export PATH=/usr/lib/oracle/11.2/client64:$PATH
Django版本1.10
Python版本2.7.13 64位
cx_Oracle 6.0
如果我提供更详细的信息可以提供帮助,请与我们联系。非常感谢!
import cx_Oracle as Database
DatabaseError: DPI-1047: Oracle Client library cannot be loaded:
libclntsh.so: cannot open shared object file: No such file or directory.
答案 0 :(得分:1)
如果您的计算机上只有一组Oracle库,请使用ldconfig
并忘记尝试通过Apache传递LD_LIBRARY_PATH
。我总是发现这是Apache的王室痛苦,因为版本不同(有些你使用导出,有些则不用),有时你可以在httpd.conf
中设置值,有时最好将它们放在{{1}中}}。它取决于所有平台和版本。
您可以使用以下内容:
/etc/sysconfig/httpd
答案 1 :(得分:0)
用cx_Oracle 5.3替换cx_Oracle 6.0后错误消失......
仍然不确定根本原因,我想它与cx_Oracle 6.0可能与python 2.7不兼容有什么关系?