使用Apache设置Django会出现数据库错误 - DatabaseError:DPI-1047

时间:2017-07-20 20:36:06

标签: python django apache cx-oracle

我在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.

2 个答案:

答案 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不兼容有什么关系?