具有多个 Oracle 客户端版本的 cx_Oracle

2024-04-10

我正在运行 Python 2.7,并在 Linux 64 位操作系统上使用 cx_Oracle。我需要能够针对 11.2 或 12.1 Oracle 客户端运行,因为我无法确定哪个客户端将安装在部署的目标上。我知道有针对每个 Oracle 客户端构建的 cx_Oracle。我如何确定该应用程序可以正常工作?我应该提到我正在使用 pyinstaller 来打包应用程序。是否有针对两个 Oracle 客户端构建的 cx_Oracle 版本,或者我是否需要拥有两个不同版本的应用程序……一个用于 11g,另一个用于 12c 客户端?


尽管理论上您应该能够构建 Oracle 11g 版本的 cx_Oracle 并将其与 Oracle 11g 和 Oracle 12c 客户端一起使用,但我不推荐它。如果您能够说服您的用户使用 Oracle 12c 即时客户端,那将是最简单的。该客户端能够毫无困难地访问 11g 和 12c 数据库。但如果这是不可能的,另一个选择如下:

1) 为 11g 和 12c 编译 cx_Oracle,并将两个副本放置在您的安装中,命名为(例如)cx_Oracle_11g.so 和 cx_Oracle_12c.so。

2)使用如下代码动态导入cx_Oracle:

for version in ("11g", "12c"):
    fileName = os.path.join(installDir, "cx_Oracle_%s.so" % version)
    try:
        module = imp.load_dynamic("cx_Oracle", fileName)
        break
    except ImportError:
        pass

3)像以前一样,在任何需要的地方使用动态导入的模块。由于动态加载的模块名为 cx_Oracle,您应该能够以常规方式将其导入其他代码中,并且它会找到您动态加载的模块。

4) 使用cx_Oracle 6.x,它同时支持任何Oracle Client 11.2、12.1和12.2。

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

具有多个 Oracle 客户端版本的 cx_Oracle 的相关文章

随机推荐

  • Swift:通过 Twitter 分享文本

    所以基本上我正在制作一个事件应用程序 一切都很顺利 只是将活动分享到了 Twitter 我已经在互联网上搜索过 但我得到的只是使用我不想要的 Twitter 的本机应用程序 我想使用浏览器发推文 我已经实现了这个方法用于FB共享 任何想法都
  • terraform 资源创建 - this 关键字

    我在几个例子中发现了一种模式terraform代码在Github resource aws vpc this 我想知道关键字如何this与命名资源相比 提供了特殊的优势 我找不到哈希公司文档关于this关键词 https github co
  • 正则表达式:仅匹配一次

    我有一个包含多个 IP 地址和一些随机内容的字符串 例如像这样的 21 Jun 2018 01 15 38 0000 188 79 169 152 157 52 69 50 443 GET 157 52 69 30 157 52 69 10
  • C++:删除打印机队列

    我正在尝试从打印机中删除队列中的所有文件 我发现这看起来很简单 我尝试使用下面的代码删除队列 它可以编译 但 SetPrinter 返回 false 我收到的错误消息是 5 我尝试使用该方法将其解码为 正常 错误消息从这个问题 https
  • 是什么导致 Safari 中的音频播放缓慢/延迟?

    var audio new Audio data audio wav base64 UklGRoABAABXQVZFZm10IBAAAAABAAEAiBUAAIgVAAABAAgAZGF0YVwBAACHlqa1xNLg7vv Tk1LSk
  • 按 iframe 内的 Youtube 订阅表单按钮

    我正在搜索如何从 Youtube 订阅表单按下订阅按钮 但我没有找到任何可以帮助我的东西 我是 JS 新手 所以我希望你能帮助我 用于按下订阅按钮here http www youtube com subscribe widget p aa
  • 如何在 JavaScript 中模拟 target="_blank"

    当用户单击链接时 我需要更新数据库中的字段 然后在新窗口中打开请求的链接 更新没问题 但我不知道如何打开新窗口而不要求他们单击另一个超链接 a href http www mydomain com ReportID 1 target bla
  • 如何在 ASP.NET MVC 3 Intranet 应用程序中重新验证用户身份?

    该应用程序已经使用 Windows 集成安全性 而不是 Forms 我想要完成的是所谓的 逐步 身份验证 或针对以下情况的 强制重新身份验证 用户正在浏览网站做一些常见的 琐碎的事情 突然 用户必须执行敏感操作 例如授权 资源分配或确认汽车
  • iPhone开发与越狱

    我是 iPhone 开发新手 我们可以通过以下方式开发iphone应用程序 legal 越狱 如果我越狱了我的iPhone操作系统 之后我可以安装最新版本的iPhone操作系统吗 并从苹果网站再次使其合法 如果我开发越狱应用程序 我可以将其
  • .NET MVC:调用 RedirectToAction 传递模型?

    我有一个观点List aspx与班级绑定的Kindergarten 在控制器中 public ActionResult List int Id Kindergarten k from k1 in kindergartensRepositor
  • Android - 包括 GitHub 库 ActionBar PullToRefresh

    我在包含来自 GitHub 的库时遇到问题 这是图书馆 https github com chrisbanes ActionBar PullToRefresh https github com chrisbanes ActionBar Pu
  • 我正在尝试通过外部 api 从 json 数据获取键值对,并使用 Angular 和 TypeScript 显示它。我怎样才能实现这个目标?

    我想从我的 api 获取结果对象中的每个键值对以显示在我的前端上 即 类别 类型 难度 问题正确答案 我已正确设置服务和组件 我需要做的就是获取 json 并显示每一对 该方法名称称为 fetchQuestions 如下所示 我只需简单地以
  • 是否可以一次性增加 YouTube api 的配额?

    我正尝试将大约 4 000 个视频添加到 YouTube 播放列表中 使用基于成本的配额系统 我每天只能添加大约 200 个 这意味着我需要大约三周的时间来完成这个项目 此外 我需要添加的视频列表将继续增长 直到我最终确定播放列表 因为它在
  • CF10-jpg的文件格式

    在开发一个允许交换多个第三方应用程序的图像并从而为这些应用程序创建单独的 皮肤 的工具时 我偶然发现了一种 jpg 格式 我似乎无法找到任何合适的信息 当在十六进制编辑器中查看它时 它以标签 CF10 开头 搜索互联网只提供了一个能够处理此
  • 如何在 WAI 服务器中执行关闭命令?

    我想为我的 web 应用程序实现一个 正常关闭 命令 与我的第一直觉相反 即只是要求人们终止该进程 我的前两次尝试包括 liftIO exitSuccess E yield responseLBS statusOK G contentTyp
  • 颜色生成功能

    让我们考虑以下场景 一个可以生成从白色到红色 从白色到蓝色 从白色到粉色 从白色到橙色等代码颜色的函数 颜色代码采用 RGB 格式 值从 0 到 255 有任何想法吗 您能给我伪代码或此类算法的链接吗 听起来你在追求线性插值 http en
  • MySQL 行格式:固定和动态之间的区别?

    MySQL 根据列数据类型将表的行格式指定为固定或动态 如果表具有可变长度列数据类型 例如 TEXT 或 VARCHAR 则行格式是动态的 否则 它是固定的 我的问题是 两种行格式有什么区别 其中一个比另一个更有效率吗 这种差异实际上只对
  • 如何将我的 WordPress 帖子分享到 Instagram [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有谁知道如何使用Instagram API将我的 WordPress 网站上的照片分享到我的 Instagram 帐户 根据Insta
  • Azure 数据工厂检查复制记录的行数

    我正在设计一个 ADF 管道 用于将 SQL 表中的行复制到 Azure Data Lake 中的文件夹 之后 SQL 中的行应该被删除 但是对于发生的删除操作 我想知道复制的行数是否与我在管道开头选择的行数相同 有没有办法获取复制操作的行
  • 具有多个 Oracle 客户端版本的 cx_Oracle

    我正在运行 Python 2 7 并在 Linux 64 位操作系统上使用 cx Oracle 我需要能够针对 11 2 或 12 1 Oracle 客户端运行 因为我无法确定哪个客户端将安装在部署的目标上 我知道有针对每个 Oracle