0

我正在使用 Active Python,因为我不想被旧版本的 Python 卡住。我安装了即时客户端,并将导出添加到我的 bash 配置文件中,但我收到了这个神秘的错误:

# apy setup.py install --no-compile --root=/tmp/tmpz0JuWASA/cx_Oracle-5.1/_pypminstroot
运行安装
运行构建
运行 build_ext
构建“cx_Oracle”扩展
gcc -pthread -fno-strict-aliasing -fPIC -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/oracle/11.2/sdk/include -I/opt/ ActivePython-2.7/include/python2.7 -c cx_Oracle.c -o build/temp.linux-x86_64-2.7-11g/cx_Oracle.o -DBUILD_VERSION=5.0.4
在 /opt/ActivePython-2.7/include/python2.7/Python.h:58 包含的文件中,
                 来自 cx_Oracle.c:6:
/opt/ActivePython-2.7/include/python2.7/pyport.h:849:2:错误:#error“平台的 LONG_BIT 定义出现错误(错误的 gcc/glibc 配置?)。”
在 /usr/lib/oracle/11.2/sdk/include/oci.h:3029 包含的文件中,
                 来自 cx_Oracle.c:10:
/usr/lib/oracle/11.2/sdk/include/ociap.h:10788:警告:函数声明不是原型
/usr/lib/oracle/11.2/sdk/include/ociap.h:10794:警告:函数声明不是原型
错误:命令“gcc”失败,退出状态为 1
4

3 回答 3

3

如果您需要更多详细信息,我会从这里的博客中获取所有这些内容。

我这样做了,而且效果很好。这是快速摘要。首先去为你的 oracle 版本获取 oracle 客户端的东西(链接在博客中)

然后下载到您的 /tmp/ 文件夹并运行安装

rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm

现在这是我苦苦挣扎的部分,确保所有环境变量都是正确的。也不要只是复制这些,去确认你的 oracle 东西的安装位置。

echo export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.4/client64/lib/ >> ~/.bashrc
echo export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client64 >> ~/.bashrc
echo export PATH=$ORACLE_HOME/bin:$PATH >> ~/.bashrc

现在您可以访问 ox_Oracle 站点,确保下载与您的 python 版本相匹配的版本(如果您不确定运行 python -V)和您的 oracle 驱动程序版本。

下载到您的 TMP 文件夹,安装并使用

python -c "import cx_Oracle"

如果那不起作用,请检查该博客,也许我错过了一些东西。它在全新安装时对我有用。谢天谢地。

抱歉...没有足够的声望点来提供更多实时链接...所以您必须复制并粘贴或访问博客。

于 2013-08-21T23:26:49.857 回答
1

确保您的路径中存在客户端 sdk。我试过的 Oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm 没有随 sdk 一起提供。所以我不得不为它下载 zip 版本。

将此添加到 .bash_rc

export DYLD_LIBRARY_PATH=$ORACLE_HOME

除此之外,Python 2.7 不附带 Python.h,它在 Python 3.4 中默认可用。所以我也建议安装 python-devel 包

yum install python-devel

那应该可以解决问题。

于 2014-11-19T13:04:11.353 回答
-1

首先,活动状态分布是另一个分布,它总是跟随 python.org 的发布。因此,您也可以从 python.org 获得最新版本。我认为,您的意思是系统安装的 python 可能有点旧。

其次,在您的 Redhat 安装中检查您是否安装了开发工具和头文件,如 gcc、glibc 等,这里有一些在 cx_Oracle 页面上提供的构建说明。确保您已关注他们。

于 2011-06-22T15:46:23.970 回答