如何在 RHEL 上为 Python 安装 cx_Oracle?
Posted
技术标签:
【中文标题】如何在 RHEL 上为 Python 安装 cx_Oracle?【英文标题】:How do you install cx_Oracle for Python on RHEL? 【发布时间】:2011-09-20 12:24:39 【问题描述】:我正在使用 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【问题讨论】:
【参考方案1】:如果您需要更多详细信息,我会从这个博客 here 获取所有这些信息。
我这样做了,而且效果很好。这是快速摘要。 首先去为你的 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"
如果这不起作用,请检查该博客,也许我错过了一些东西。它在全新安装时对我有用。谢天谢地。
抱歉...没有足够的声望点来提供更多实时链接...所以您必须复制和粘贴或访问博客。
【讨论】:
【参考方案2】:确保您的路径中存在客户端 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.h 默认在 Python 3.4 中可用。所以我也建议安装 python-devel 包
yum install python-devel
这应该可以解决问题。
【讨论】:
【参考方案3】:首先,活动状态分布是另一个分布,它总是跟随 python.org 的发布。因此,您也可以从 python.org 获得最新版本。我想,你的意思是系统安装了可能有点旧的python。
其次,在您的 Redhat 安装中,检查您是否安装了开发工具和头文件,如 gcc、glibc 等,here 是 cx_Oracle 页面上提供的一些构建说明。确保您已关注他们。
【讨论】:
我从来没有说过我在说哪个 py,我只是说我不想使用 RHEL 附带的 python 2.4。我完全按照指示进行。这些说明不起作用,并且 GCC 失败了。以上是关于如何在 RHEL 上为 Python 安装 cx_Oracle?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 anaconda 上为 python 安装 tesseract
如何在 Ubuntu 18 上为 python 3.7 安装 pip?