【问题标题】:Connecting to Oracle database from Python从 Python 连接到 Oracle 数据库
【发布时间】:2015-06-01 00:43:18
【问题描述】:

尝试使用 cx-oracle 从 Python 连接到 Oracle 数据库。我按照此链接中提到的步骤操作:https://gist.github.com/thom-nic/6011715

我正在运行 Python 2.7.8。在优胜美地(10.10.2)上。在我将即时客户端解压缩到我的机器上的此路径后:/Users/ayada/Library/Share/oracle 设置为 ORACLE_HOME 并将 DYLD_LIBRARY_PATH、LD_LIBRARY_PATH 设置为 ORACLE_HOME。我使用 Pip(env ARCHFLAGS="-arch $ARCH" pip install cx_Oracle) 安装 cx_oracle 但遇到以下错误: distutils.errors.DistutilsSetupError:

Oracle 主页 (/Users/ayada/Library/Share/oracle) 不涉及 9i、10g、11g 或 12c 安装。

正在清理... 命令 python setup.py egg_info 失败,错误代码 1 在 /private/var/folders/22/78xh65wd3xq232p4zd18l8800013hw/T/pip_build_ayada/cx-Oracle 在 /Users/ayada/.pip/pip.log 中存储失败的调试日志

为了提供一些上下文,我的机器上没有安装 Oracle 数据库,但我正在尝试连接到远程服务器。

我是在 Mac 上工作和进行此类设置的相对新手。请指教。

【问题讨论】:

  • 你能用sqlplus连接oracle数据库吗?
  • 是的,我通常从事 SQL 开发人员并连接到数据库。但是这里的问题似乎不是连接到数据库,而是安装 cx_oracle。下载 cx_oracle 后,我将连接到 db。谢谢!

标签: python python-2.7 oracle11g cx-oracle


【解决方案1】:

您是否按照 kevindalias 在您粘贴的链接的 cmets 部分中的建议进行操作?

自发布以来,Oracle 似乎对基本 zip 进行了更改,所以对于到达这里的其他任何人:

ln -s libclntsh.dylib.11.2 libclntsh.dylib ln -s libocci.dylib.11.2 libocci.dylib

应该是……

ln -s libclntsh.dylib.11.1 libclntsh.dylib ln -s libocci.dylib.11.1 libocci.dylib

当您解压缩 zip 文件时,您会看到这两个 11.1 文件,并且链接需要指向它们。通过这个调整,我能够使用 64 位版本的 Oracle Instant Client 11.2 和 Python 2.7.6 在 OS X 10.8.5 上安装 cx_Oracle 5.1.2。祝你好运。

我也不了解 Mac,但在 RHEL 中,我的 ORACLE_HOME 与 LD_LIBRARY_PATH 不同:

LD_LIBRARY_PATH=$ORACLE_HOME/lib ORACLE_HOME=/usr/lib/oracle/12.1/client64

【讨论】:

  • @abhi : 我也有同样的问题,你能解决吗?
猜你喜欢
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 2013-10-03
  • 2018-07-16
  • 2014-06-12
  • 1970-01-01
相关资源
最近更新 更多