【问题标题】:DPI-1047: 64-bit Oracle Client library cannot be loadedDPI-1047:无法加载 64 位 Oracle 客户端库
【发布时间】:2019-01-06 21:02:57
【问题描述】:

我正在尝试在 python 中运行 oracle 数据库。 规格: 1.Windows 7 64位 2. Python 32 位 3.6(在 Jupyter 上运行(Anaconda Navigator) 3.Visual Studio 2010培训套件模块 4.Oracle即时客户端基本12.2 32位 5.Oracle即时客户端基础SQL*Plus 12.2 32位

我已经通过命令安装了 cx_Oracle 导入系统 !conda install --yes --prefix {sys.prefix} cx_Oracle 导入 cx_Oracle

之后,我在连接 Jupyter 的同一工作目录中安装了 Oracle 即时客户端基本 12.2 32 位和 Oracle 即时客户端基本 SQLPlus 12.2 32 位。 我已将安装的 Oracle 即时客户端基本和即时客户端基本 SQLPlus 复制到同一文件夹中,并提供了同一文件夹的环境路径。 但是每当我运行命令时,它都会出错: DPI-1047:无法加载 64 位 Oracle 客户端库:“C:\oracle\product\10.2.0\client_1\bin\oci.dll 不是正确的体系结构”。请参阅https://oracle.github.io/odpi/doc/installation.html#windows 寻求帮助 虽然除了我有搜索的窗口之外没有什么 64 位的。

【问题讨论】:

  • 你编译到“AnyCPU”了吗?
  • 抱歉,您能否详细说明一下,因为我是新手,但仍在努力理解事物。提前致谢。

标签: python database oracle anaconda jupyter-notebook


【解决方案1】:

您需要安装 64 位 Instant Client 而不是 32 位 - 错误很清楚。当您运行 Python 时,请确保 Instant Client 位于 Oracle 10.2 目录或任何其他 Oracle 库之前的 PATH 环境变量中。

【讨论】:

  • 即使安装了python也是32位的?我研究并发现即时客户端应该与解释器相同。你能帮我解释一下它背后的概念吗?
  • 现在我的 Anaconda 是 64 位,即时客户端是 64 位 12_1,Windows 是 64 位,我已经在即时客户端路径之后的环境变量中设置了 OCI.dll 的路径,但我仍然得到同样的错误。
  • 如果错误仍然提到 C:\oracle\product\10.2.0\client_1\bin\oci.dll 那么你没有正确设置 PATH。如果您安装了 Instant Client 12.1,请不要忘记安装 VC 2010 Redistributable。如果仍有问题,请向我们展示 PATH 的实际值。
  • 我给出的路径与抛出的错误相同,并且是到达 OCI.dll 的正确路径。路径为“C:\oracle\product\10.2.0\client_1\bin\oci.dll”。
  • installation instructions 开始,cx_Oracle 仅适用于 11.2 或更高版本的 Oracle 客户端 DLL。如果您不将 Instant Client 12.2 放在 PATH 中,为什么还要安装它?请阅读并遵循安装说明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 2020-11-23
  • 1970-01-01
  • 2019-12-06
  • 1970-01-01
相关资源
最近更新 更多