代码之家  ›  专栏  ›  技术社区  ›  damon Curtis Snowden

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

  •  2
  • damon Curtis Snowden  · 技术社区  · 14 年前

    我不知道如何安装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 回复  |  直到 14 年前
        1
  •  2
  •   Mike S    14 年前

    您需要将$ORACLE_HOME/lib添加到您的LD_LIBRARY_路径