【问题标题】:Setting up Django with Apache got DB error - DatabaseError: DPI-1047使用 Apache 设置 Django 时出现 DB 错误 - DatabaseError: DPI-1047
【发布时间】:2017-12-26 17:47:24
【问题描述】:

我在 Apache 2.4、Suse 11 中设置 Django。

Apache 启动没有问题。如果我没有在 Setting.py 中放置任何数据库连接信息,则可以毫无问题地打开索引页面。当我输入数据库信息,然后尝试访问索引页面时,我在 Apache 错误输出中看到下面的数据库错误。

但是,如果我只是运行'python',然后'import cx_Oracle as Database',就没有错误。

我还将“PassEnv LD_LIBRARY_PATH”和“PassEnv PATH”放在 httpd.conf 中。

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.

【问题讨论】:

    标签: python django apache cx-oracle


    【解决方案1】:

    如果您的机器上只有一组 Oracle 库,只需使用 ldconfig 并忘记尝试通过 Apache 传递 LD_LIBRARY_PATH。我一直觉得这在 Apache 中很痛苦,因为版本不同(有些使用 export,有些不使用),有时您可以在 httpd.conf 中设置值,其他时候最好将它们放在 /etc/sysconfig/httpd 中。这完全取决于平台和版本。

    你可以使用类似的东西:

    sudo sh -c "echo /usr/lib/oracle/11.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
    sudo ldconfig
    

    【讨论】:

      【解决方案2】:

      用 cx_Oracle 5.3 替换 cx_Oracle 6.0 后错误消失......

      仍然不确定根本原因,我想这与 cx_Oracle 6.0 可能与 python 2.7 不兼容有关?

      【讨论】:

      猜你喜欢
      • 2022-01-06
      • 2019-02-02
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 2021-06-25
      • 2017-07-10
      • 2021-03-24
      相关资源
      最近更新 更多