python - 在 64 位 linux 机器上运行 32 位 Python 脚本以使用 32 位客户端连接到 oracle DB

标签 python oracle ubuntu 32bit-64bit cx-oracle

我正在尝试设置一个每天在给定时间执行 python (3.6) 脚本的 cronjob,该脚本连接到带有 32 位客户端的 oracle 12g 数据库(使用 cx_Oracle 和 sqlalchemy 库)。代码本身是在 win64 位机器上开发的。

但是,当尝试将脚本部署到 Ubuntu 16.04 服务器上时,我遇到了 32 位与 64 位架构的两难选择。

  • 服务器基于 64 位架构
  • oracle db 可通过 32 位客户端
  • 访问
  • 我当前在 ubuntu 上的 python 版本是基于 64 位的,我花了大约一个小时来了解如何在 64 位 linux 机器上运行 32 位版本,但没有取得多大成功。

  • 我在尝试运行 python 脚本时收到的错误是指缺少 oracle 客户端 (DPI-1047)。但是,我在windows中已经遇到了类似的问题,需要将python版本切换到32位版本并安装32位oracle客户端。

    这在 ubuntu 案例中是否也是必要的,或者是否需要进行类似的测量?如果是这样,我如何让 ubuntu 安装和运行 32 位的 python3.6 以及 32 位的 oracle 客户端?

    最佳答案

    我对你的问题有点困惑,但这应该澄清一下:

  • 32 位客户端可以连接到 64 位 Oracle 数据库服务器 - 反之亦然
  • 您可以在 64 位机器上安装和运行 32 位应用程序——这至少对 Windows 有效,我不知道它在 Linux 上是如何工作的。
  • 您的应用程序(在您的案例中是 python)必须具有与已安装的 Oracle 客户端相同的“位数”。
  • 关于python - 在 64 位 linux 机器上运行 32 位 Python 脚本以使用 32 位客户端连接到 oracle DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49171782/

    相关文章:

    python - Cython 在没有 gil 的情况下迭代 numpy 数组列表

    oracle - 0x80040e51 描述 : "Provider cannot derive parameter information and SetParameterInfo has not been called."

    asp.net - 在 web.config 中设置要加载的 DLL 的位置

    python - pip 不能使用自定义 SSL 证书?

    Docker 流量控制 (tc) - 未找到指定的 qdisc

    python - 将字符串中的 xyz 坐标值提取到列表中

    python - web.py + 子进程 = 挂起

    python - 在 Python 中从 opencv 3 创建类 Rect 的实例

    database - Oracle 中的触发器以保持数据完整性

    android - HTC Sensation 在 Linux 中无法识别以进行调试