0

所以我试图推送一个带有 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
4

1 回答 1

0
  1. 使用 Oracle Instant Client 的 zip 安装程序,而不是包管理器。
  2. 将文件提取到应用程序下的子文件夹中,例如oracle/.
  3. cx-Oracle正常安装pip
  4. 生成requirements.txt.
  5. 将具有确切名称的文件添加.profile到应用程序的根目录中export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/vcap/app/oracle/lib(其中/home/vcap/app是应用程序文件oracle/lib的路径,并且是lib您在步骤#2 中提取文件的文件夹下的目录的路径)。
  6. 然后推送您的应用程序。

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

如果您收到错误消息:

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

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

于 2020-07-25T14:18:16.877 回答