Setting up Django with Apache got DB error - DatabaseError: DPI-1047
Setting up Django with Apache got DB error - DatabaseError: DPI-1047
我正在 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 环境变量是:
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.
将 cx_Oracle 6.0 替换为 cx_Oracle 5.3 后错误消失了......
仍然不确定根本原因,我想这与 cx_Oracle 6.0 可能与 python 2.7 不兼容有关?
如果您的计算机上只有一组 Oracle 库,只需使用 ldconfig
并忘记尝试通过 Apache 传递 LD_LIBRARY_PATH
。我总是发现这在 Apache 中是一个巨大的痛苦,因为版本不同(有些你使用导出,有些则不),有时你可以在 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
我正在 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 环境变量是:
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.
将 cx_Oracle 6.0 替换为 cx_Oracle 5.3 后错误消失了......
仍然不确定根本原因,我想这与 cx_Oracle 6.0 可能与 python 2.7 不兼容有关?
如果您的计算机上只有一组 Oracle 库,只需使用 ldconfig
并忘记尝试通过 Apache 传递 LD_LIBRARY_PATH
。我总是发现这在 Apache 中是一个巨大的痛苦,因为版本不同(有些你使用导出,有些则不),有时你可以在 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