让Django在Ubuntu上使用远程Oracle数据库

时间:2010-11-16 17:29:24

标签: django oracle

我无法弄清楚如何安装Oracle / Python适配器来实现这一目标。每当我尝试安装cx_Oracle时,我都会收到以下错误:

python setup.py install                                                                                              ~VIRTUAL_ENV/build/cx-oracle
running install
running bdist_egg
running egg_info
creating cx_Oracle.egg-info
writing cx_Oracle.egg-info/PKG-INFO
writing top-level names to cx_Oracle.egg-info/top_level.txt
writing dependency_links to cx_Oracle.egg-info/dependency_links.txt
writing cx_Oracle.egg-info/PKG-INFO
writing top-level names to cx_Oracle.egg-info/top_level.txt
writing dependency_links to cx_Oracle.egg-info/dependency_links.txt
writing manifest file 'cx_Oracle.egg-info/SOURCES.txt'
reading manifest file 'cx_Oracle.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'cx_Oracle.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_ext
building 'cx_Oracle' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/demo -I/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public -I/usr/include/python2.6 -c cx_Oracle.c -o build/temp.linux-x86_64-2.6-10g/cx_Oracle.o -DBUILD_VERSION=5.0.4
In file included from /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/oci.h:2655,
                 from cx_Oracle.c:10:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/oci1.h:148: warning: function declaration isn’t a prototype
In file included from /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/ociap.h:222,
                 from /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/oci.h:2679,
                 from cx_Oracle.c:10:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:676: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2667: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2676: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2686: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2695: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2704: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2713: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2721: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2731: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2738: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/nzt.h:2746: warning: function declaration isn’t a prototype
In file included from /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/oci.h:2679,
                 from cx_Oracle.c:10:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/ociap.h:10069: warning: function declaration isn’t a prototype
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/public/ociap.h:10075: warning: function declaration isn’t a prototype
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-x86_64-2.6-10g/cx_Oracle.o -L/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib -L/usr/lib/oracle/xe/app/oracle/product/10.2.0/server -lclntsh -o build/lib.linux-x86_64-2.6-10g/cx_Oracle.so
/usr/bin/ld: skipping incompatible /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libclntsh.so when searching for -lclntsh
/usr/bin/ld: cannot find -lclntsh
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

以下是我的.bashrc文件中的变种:

# Export Oracle Values
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_HOME
export ORACLE_SID=XE
export PATH
export LD_LIBRARY_PATH

无论如何,我想要连接到远程Oracle数据库。我的本地计算机上不需要安装一个。这可能吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:2)

您需要将$ ORACLE_HOME / lib添加到LD_LIBRARY_PATH