在64位Linux机器上运行32位的Python脚本,用32位客户端连接到oracle DB

时间:2018-03-08 11:15:49

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

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

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

  • 服务器基于64位架构
  • oracle db可通过32位客户端访问
  • 我目前在ubuntu上的python版本是基于64位的,我花了大约一个小时的时间如何在64位Linux机器上运行32位版本而没有太大的成功。

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

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

1 个答案:

答案 0 :(得分:4)

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

  • 32位客户端可以连接到64位Oracle数据库服务器 - 反之亦然
  • 您可以在64位计算机上安装和运行32位应用程序 - 这至少对Windows有效,我不知道它在Linux上是如何工作的。
  • 您的应用程序(您的情况下为python)必须与安装的Oracle客户端具有相同的“位数”。