在 Windows 中安装 Python cx_Oracle 模块并连接到 Oracle 数据库

2023-12-29

我一直在尝试安装和设置此功能,尽管有几个链接描述了如何执行此操作,但我只是无法使其正常工作。我将首先描述设置:

  • 我的电脑:Windows 8.1 企业版(62 位)
  • 远程服务器:Oracle DB 版本 12.1.0.2
  • C:\Users\Pymat\Oracle\instantclient_12_1这是哪里oraocci12.dll以及其他文件夹和文件
  • C:\Users\Pymat\AppData\Local\Continuum\Anaconda3这里是python.exe位于(即os.path.dirname(sys.executable)) 在脚本中,我有print (sys.version)这使:3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)]

我一直在参考来自here http://www.heatonresearch.com/content/oracle.html and here http://www.qc4blog.com/?p=1982 and here https://www.cs.utexas.edu/~scohen/cs327e_spr15/cx_Oracle/windows.html and here https://gist.github.com/kgruel/41b62d0cca51e381b38eaf7622da895d and here https://stackoverflow.com/questions/34610275/package-cx-oracle-for-python-3-5-windows64-bit-oracle-11-2-0-1-0.

问题一:哪个是正确的下载cx_Oracle? 我去了cx_Oracle 5.2.1 from here https://pypi.python.org/pypi/cx_Oracle/并下载:

cx_Oracle-5.2.1-12c.win-amd64-py3.5.exe (md5)
cx_Oracle-5.2.1-12c.win32-py3.5.exe (md5)

目前尚不清楚哪一个是正确的.exe下载(或者也许两者都是正确的)。无论如何,我使用 12c 来保持版本与 Oracle DB 版本一致,尽管在整个过程中似乎无论如何都没有与远程服务器上的 Oracle DB 进行交互。

问题2: Is cx_Oracle正确下载或实际丢失?

在以下路径下:

C:\Users\Pymat\AppData\Local\Continuum\Anaconda3\Lib\site-packages

I find:

cx_Oracle.cp35-win_amd64.pyd
cx_Oracle.cp35-win32.pyd

但是我在这个目录(或任何其他目录)下没有找到cx_Oracle,例如Verion-5.1.2-11g.win32-py2.7, 按照here https://stackoverflow.com/questions/12538238/python-module-cx-oracle-module-could-not-be-found?rq=1。我怀疑定位有问题cx_Oracle模块。另请参阅问题 5

问题3:我的环境变量配置正确吗?

(i) 当我在 Windows 中使用 GUI 来检查变量时,例如here http://www.qc4blog.com/?p=1982 I see:

ORACLE_HOME
C:\Users\Pymat\Oracle\instantclient_12_1;
C:\Users\Pymat\Oracle\instantclient_12_1\vc12

PATH
C:\Users\Pymat\AppData\Local\Continuum\Anaconda3;
C:\Users\Pymat\AppData\Local\Continuum\Anaconda3\Scripts;
C:\Users\Pymat\AppData\Local\Continuum\Anaconda3\Library\bin;
C:\Users\Pymat\Oracle\instantclient_12_1;

NB:末尾缺少分号ORACLE_HOME。那是对的吗?

(ii) 当我使用C:\Users\Pymat>echo %PATH%在命令中:

C:\ProgramData\Oracle\Java\javapath;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\Users\Pymat\.dnx\bin;
C:\Program Files\Microsoft DNX\Dnvm\;
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;
C:\Users\Pymat\AppData\Local\Continuum\Anaconda3;
C:\Users\Pymat\AppData\Local\Continuum\Anaconda3\Scripts;
C:\Users\Pymat\AppData\Local\Continuum\Anaconda3\Library\bin;
C:\Users\Pymat\Oracle\instantclient_12_1;

(iii) 当我进入 Python shell 并使用sys.path:

'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\python36.zip', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\DLLs', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\lib', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\lib\\site-packages', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\lib\\site-packages\\Sphinx-1.5.1-py3.6.egg', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\lib\\site-packages\\win32', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\lib\\site-packages\\win32\\lib', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\lib\\site-packages\\Pythonwin', 
'C:\\Users\\Pymat\\AppData\\Local\\Continuum\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.6.egg'

问题4:即时客户端下载,哪些下载实际上是必需的?

在 Oracle 上注册后,我从here http://www.oracle.com/technetwork/topics/winx64soft-089540.html在版本 12.1.0.2 下“即时客户端包 - 基本” and “即时客户端包-SDK”。有些网站没有提到SDK包,但我还是下载了。

这些文件被下载到我的 PC(不是 Oracle DB 所在的位置)。

问题5:为了测试安装是否成功,我进入 Python shell 并使用:

import os
os.chdir("C:\\Users\\Pymat\\Oracle\\instantclient_12_1")
import cx_Oracle

但后来我得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cx_Oracle'

为什么这一步不起作用?

问题6:我在 Eclipse 中无法正确使用 Console,但 Command 中的 Python shell 可以工作,为什么?

当我点击“PyDev 控制台”, then “Python 控制台”,然后我得到:

'Create Interactive Console' has encountered a problem
Error initializing console

这变得有点令人头疼,虽然我仍然是一个 Python 新手,但我认为这个安装过程可能会容易得多。欢迎任何建议。


长话短说:现在降级到 Python 3.5,Python 3.6 的二进制文件将在下一个 cx_Oracle 版本中构建。


长版:

在脚本中,我有print (sys.version)这使:3.6.0 [...]

I find:

cx_Oracle-5.2.1-12c.win-amd64-py3.5.exe (md5)
cx_Oracle-5.2.1-12c.win32-py3.5.exe (md5)

这些安装程序适用于 Python 3.5(请参阅其名称中的 py3.5)。二进制 Python 模块不一定与主要 Python 版本之间的 API 兼容,这就是它们的文件名特定于版本的原因。

目前还没有适用于 Python 3.6 的 Windows 官方 cx_Oracle 二进制文件。一次cx_Oracle 5.3 已发布,还将包括 Python 3.6 的 Windows 安装程序(问题 #45) https://bitbucket.org/anthony_tuininga/cx_oracle/issues/45/next-release-planned.

There 不会是当前 cx_Oracle 版本 5.2.1 的官方 Python 3.6 安装程序(请参阅问题 #50) https://bitbucket.org/anthony_tuininga/cx_oracle/issues/50/build-windows-installer-for-python-36.

同时,根据邮件列表中的 Jani Tiainen 的说法,自己构建二进制文件应该不难 https://sourceforge.net/p/cx-oracle/mailman/message/35669733/——但我自己从未尝试过:

我想你只需要从微软下载Visual C++ 14 (2015) [1] 和来自 Oracle [2] 的即时客户端库。那么你应该能够 自己编译一下。

请注意,您还需要 Instant Client 的 SDK 库。

[1] http://landinghub.visualstudio.com/visual-cpp-build-tools http://landinghub.visualstudio.com/visual-cpp-build-tools

[2] http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 中安装 Python cx_Oracle 模块并连接到 Oracle 数据库 的相关文章

  • 如何在python中确定过去的时区特定日期是否是夏令时?

    有没有办法检查特定时区在我指定的日期是否处于夏令时 test dt datetime year 2015 month 2 day 1 pst pytz timezone America Los Angeles test dt pst loc
  • Colab 的使用限制持续多久?

    当我对同一帐户的两个笔记本同时使用两个 GPU 约半小时后 Colab 已 12 小时未运行 此消息不断弹出 由于 Colab 中的使用限制 您当前无法连接到 GPU 自从我上次使用 colab 以来已经过去了大约两个小时 但该消息仍然弹出
  • 无法使用symfony2连接数据库oracle

    我需要的 我需要将oracle数据库与symfony2连接 我已经通过 php m 检查过 oci8 pdo odbc odbc 这是我关注的链接https gist github com johnkary 6481664 https gi
  • 将相同的 Patch 实例添加到 matplotlib 中的多个子图中

    我正在尝试将补丁的相同实例添加到 matplotlib 中的多个轴 这是最小的例子 import matplotlib pyplot as mpl plt import matplotlib patches as mpl patches f
  • 检查列表是否已排序的 Pythonic 方法

    有没有一种Python式的方法来检查列表是否已经排序ASC or DESC listtimestamps 1 2 3 5 6 7 就像是isttimestamps isSorted 返回True or False 我想输入一些消息的时间戳列
  • Python 在 64 位 vista 上获取 os.environ["ProgramFiles"] 的错误值

    Vista64 计算机上的 Python 2 4 3 环境中有以下2个变量 ProgramFiles C Program Files ProgramFiles x86 C Program Files x86 但是当我运行以下命令时 impo
  • Python:绘制甘特图的模块

    有没有一个好的Python绘图模块甘特图 http en wikipedia org wiki Gantt chart 我试过了开罗情节 http linil wordpress com 2008 09 16 cairoplot 11 但它
  • Python 中使用 globals() 的原因?

    Python 中有 globals 函数的原因是什么 它只返回全局变量的字典 这些变量已经是全局的 所以它们可以在任何地方使用 我只是出于好奇而问 试图学习Python def F global x x 1 def G print glob
  • 使用 os.forkpty() 创建一个伪终端以 ssh 到远程服务器并与其通信

    我正在尝试编写一个 python 脚本 它可以 ssh 到远程服务器 并可以从 python 客户端执行 ls cd 等简单命令 但是 在成功 ssh 到服务器后 我无法读取伪终端的输出 任何人都可以在这里帮助我 以便我可以在服务器上执行一
  • 如何删除 pip 安装的所有软件包?

    如何从当前激活的虚拟环境中卸载 pip 安装的所有软件包 我发现这个片段作为替代解决方案 与重新创建 virtualenv 相比 删除库更加优雅 pip freeze xargs pip uninstall y 如果您通过 VCS 安装了软
  • 如何使用 Python 实现并行 gzip 压缩?

    使用python压缩大文件 https stackoverflow com questions 9518705 big file compression with python给出了一个很好的例子来说明如何使用例如bz2 纯粹用 Pytho
  • Pandas 中的数据透视表小计

    我有以下数据 Employee Account Currency Amount Location Test 2 Basic USD 3000 Airport Test 2 Net USD 2000 Airport Test 1 Basic
  • Django:显示管理员验证错误的自定义错误消息

    我正在使用 Django 1 2 4 我有一个模型 其中有一个需要验证的字段 当验证失败时 我想向用户显示自定义错误消息 模型编辑是在管理界面中完成的 这就是我目前正在做的事情 def clean fields self exclude N
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • 如何在oracle sql查询中提取括号之间的字符串

    我正在尝试从字符串中提取括号之间的值 我怎样才能做到这一点 例如 我有这个字符串 Gupta Abha 01792 我想得到括号之间的结果 即 01792 我正在尝试编写这样的查询 select substr Gupta Abha 0179
  • 为什么这个触发器会失败?它说无效标识符

    CREATE MATERIALIZED VIEW ORDERS MV BUILD IMMEDIATE REFRESH COMPLETE ON DEMAND AS SELECT FROM ORDERS CREATE OR REPLACE TR
  • 访问影子 DOM 中的元素

    是否有可能查找 Shadow DOM 中的元素与蟒蛇硒 示例用例 我有这个input with type date
  • 具有行业级约束的 SciPy 投资组合优化

    尝试在这里优化投资组合权重分配 通过限制风险来最大化我的回报函数 我可以毫无问题地通过简单的约束 所有权重之和等于 1 找到产生我的回报函数的优化权重 并做出另一个约束 即我的总风险低于目标风险 我的问题是 如何为每个组添加行业权重界限 我
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 使用 python/scipy 进行 voronoi 和 lloyd 松弛

    如何使用 Qhull 确定哪些 voronoi 单元 按索引 是 正确的 由 现有顶点 组成 我正在尝试使用 LLoyds 算法和 scipy spatial Voronoi 它是 Qhull 的包装器 生成的输入来执行约束松弛 就代码而言

随机推荐

  • Cloud Functions for Firebase 中的本地依赖项

    当我尝试部署我的功能时 firebase 抱怨这一点 const admin require firebase admin const functions require firebase functions const C require
  • 无法从Python目录中打开文件[重复]

    这个问题在这里已经有答案了 我编写了一个小模块 首先查找目录中的所有文件 然后合并它们 但是 我在从目录打开这些文件时遇到问题 我确保我的文件和目录名称是正确的 并且文件实际上位于该目录中 下面是代码 seqdir results outf
  • java 获取 Active Directory RootDSE

    我正在尝试使用 java 获取 Active Directory rootDSE 这是我到目前为止所做的尝试 public class RootDSE public DirContext context public Attributes
  • 从IP地址查找时区

    当我只有 IP 地址时 有没有办法找到用户所在的时区 我正在寻找需要应用于服务器时间的时间偏移 以便找到用户位置的时间 您需要尝试确定位置 远非 100 准确 看这个问题 https stackoverflow com questions
  • 如何使用 JdbcCursorItemReader 和多线程从 Oracle Db 读取数据

    我有 Spring Batch 应用程序并配置了如下步骤 ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor taskExecutor setCorePoolSize
  • 有没有办法防止selenium自动终止空闲会话?

    我正在使用 selenium 来自动化与网站的一些交互 此过程涉及打开多个浏览器并让它们间歇性地执行操作 然而 偶尔会出现长时间 gt 1 小时 不活动的情况 并且 selenium 似乎会在大约 30 分钟没有被调用后自动终止浏览器会话
  • 为什么Java中方法调用中间要使用括号?

    尽管我做了一些广泛的搜索 但我遇到了一些代码 但无法理解它的某些方面 我的问题是 为什么在方法调用中间使用括号 package com zetcode import java awt event ActionEvent import jav
  • 如何使用 apache Camel 创建 IAM 用户?

    我有一个骆驼休息API 我试图使用 apache Camel 框架创建一个 IAM 用户 代码是这样的 gt post iam create user route process new Processor Override public
  • 我应该将安全代码与不安全代码混合在一起吗?

    我正在开发一个使用大量 WIN32 API 调用并需要一些不安全代码的项目 从最佳实践的角度来看 我是否应该将此代码隔离在使用 unsafe 开关编译的其自己的 DLL 中 同时保持主应用程序的安全 换一种方式 有什么理由不使用 unsaf
  • SVN - 在提交主干时提交外部

    简短而甜蜜 我有一个带有外部的项目 它允许我在一项操作中提交对该外部文件的更改以及对主干的更改 我有另一个带有外部的项目 它确实not允许我在主干旁边提交更改 最明显的区别是第二个外部被签出到复合目录 但除此之外我找不到任何区别 据我所知
  • 使用 fclose 到 popen 的管道是一个严重的错误?

    几个月前 我为 Linux 编写了一个 CGI 应用程序 它使用popen 读取命令的输出 然后我关闭管道fclose 现在 我读到关闭管道需要使用pclose 手册说 返回值来自popen 是一个普通的标准I O流 尊重除了它必须关闭pc
  • 名称“演员”未定义

    我在 python 编程方面遇到问题 当我尝试编写游戏时 由书本介绍 Coding Games Python DK 3 它说 名称 Actor 未定义 这是我的代码 import pgzrun from random import rand
  • R中的快速傅立叶变换

    我有一个数据集 其中包含动物在 12 个月内每小时的访问次数 我想使用快速傅里叶变换来检查循环模式和周期性 过去 我为此使用过 Statistica 但是 我想使用 R 来绘制频谱密度与周期的关系图 在 R 中是否有一种简单的方法可以做到这
  • 如何从 PreferenceActivity 外部更改首选项的状态?

    我的应用程序中有一些功能需要 Android 版本 4 2 因此 在我的主要活动中 我需要检查可用的操作系统功能并修改 启用 禁用 我的中定义的首选项项目PreferenceActivity 从外部无法访问以下代码PreferenceAct
  • 向任何指针添加字节偏移量的可移植且安全的方法

    我对使用 C 还很陌生 还没有掌握该语言的所有复杂性和微妙之处 什么是最便携 正确 安全在 C 11 中向任何类型的指针添加任意字节偏移量的方法 SomeType ptr int offset 12345 bytes ptr ptr off
  • 我可以拥有一个具有对其自身的外键引用的 Django 模型吗?

    好吧 我该怎么做呢 class Example models Model parent example models ForeignKey Example 我想让一个模型有一个对其自身的外键引用 当我尝试创建这个时 我收到一个 django
  • Flash Builder + Eclipse:禁用鼠标悬停弹出窗口?

    有什么方法可以禁用当鼠标悬停在代码上时出现的无聊弹出窗口吗 在 Eclipse 中 您可以通过转到 Window gt Preferences gt Java gt Editor gt Hovers 并取消选择其中的所有内容来删除它 我在
  • 在 C# 中从内存中释放指针

    我正在使用 C 处理指针fixed 短语 我将代码放在固定语句的括号内 并想知道垃圾收集是否会在固定语句之后处理指针释放 fixed int p x i work with x 如果不是我怎样才能释放它 您的指针指向托管对象 x 所以没有什
  • 如何更改表单内 Angular ngx-bootstrap 的日期选择器中的日期格式

    在 Angular 4 应用程序中使用 ngx bootstrap Datepicker 我知道通常您可以这样指定日期格式
  • 在 Windows 中安装 Python cx_Oracle 模块并连接到 Oracle 数据库

    我一直在尝试安装和设置此功能 尽管有几个链接描述了如何执行此操作 但我只是无法使其正常工作 我将首先描述设置 我的电脑 Windows 8 1 企业版 62 位 远程服务器 Oracle DB 版本 12 1 0 2 C Users Pym