【问题标题】:Deploy instant oracle on Pivotal CloudFoundry for cx_Oracle在 Pivotal CloudFoundry 上为 cx_Oracle 部署即时预言机
【发布时间】:2020-07-10 08:10:35
【问题描述】:

所以我试图推送一个带有 cx_oracle 依赖项的 python api,它也需要 oracle 即时客户端,但我找不到在 pcf 上部署即时客户端的教程,有没有人这样做过或有任何示例应该做什么?欣赏一下

更新:

这是我的 .profile 的内部

LD_LIBRARY_PATH=/home/vcap/app/oracle/instantclient:${LD_LIBRARY_PATH:-}
export OCI_LIB_DIR=/home/vcap/app/oracle/instantclient
export OCI_INC_DIR=/home/vcap/app/oracle/instantclient/sdk/include
export PYTHONPATH=/home/vcap/app/vendor:$PYTHONPATH
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

【问题讨论】:

  • 只使用 zip 安装程序而不是包管理器。将文件解压缩到您的应用程序下的子文件夹中,例如 oracle/。像平常一样使用 pip 安装cx-Oracle。生成 requirements.txt。将.profile 文件添加到应用程序的根目录,在其中放入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/vcap/app/oracle/lib(或安装Oracle 客户端库的路径)。然后推送您的应用程序。 .profile 文件将调整库搜索路径,以便可以找到 Oracle 客户端库,它在您的应用程序启动之前运行。如果你在某个地方卡住了,请告诉我。
  • 感谢您的回复,我对即时 oracle 有点困惑,所以我应该将它提取到项目文件夹中,对吗?关于 .profile 扩展文件,文件名是什么?我应该将其添加到要求中吗? @DanielMikusa
  • 是的,将 Oracle Instant 客户端解压缩到项目下的子文件夹中。我喜欢打电话给我的oracle/,但你可以随意命名。 .profile 是您需要用于文件的确切名称。这不是一个扩展。如果您使用的是 Windows,请确保 Windows 没有添加隐藏的扩展程序。文件名必须完全是.profile,并且需要位于项目文件夹的根目录中,您可以在其中运行cf push
  • @DanielMikusa 感谢您的提示,我已经尝试推送它并且它成功但我在我的应用程序日志中看到了这个 cx_Oracle.DatabaseError: DPI-1047: 找不到 64 位 Oracle 客户端库: “/home/vcap/app/oracle/instantclient/libclntsh.so: 文件太短”
  • 它似乎不喜欢您上传的Oracle 即时客户端库。确保您下载了 64 位 Linux 即时客户端并将其解压缩到您的应用程序中的 oracle/ 目录下。

标签: cx-oracle cloud-foundry instantclient push-api


【解决方案1】:
  1. 使用 Oracle Instant Client 的 zip 安装程序,而不是包管理器。
  2. 将文件解压到您的应用程序下的子文件夹中,例如oracle/
  3. 像平常一样安装cx-Oraclepip
  4. 生成requirements.txt
  5. 在应用程序的根目录中添加一个名称为.profile 的文件,在其中放入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/vcap/app/oracle/lib(其中/home/vcap/app 是应用程序文件的路径,oracle/lib 是@987654329 的路径@ 在步骤 #2) 中提取文件的文件夹下的目录。
  6. 然后推送您的应用。

.profile 文件将在您的实际应用程序启动之前运行,它会调整库搜索路径以便可以找到 Oracle 客户端库。

如果出现错误:

cx_Oracle.DatabaseError:DPI-1047:找不到 64 位 Oracle 客户端库:“/home/vcap/app/oracle/instantclient/libclntsh.so:文件太短”

仔细检查您的.profile 脚本并确保您的LD_LIBRARY_PATH 设置正确。

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多