【发布时间】:2019-04-12 02:03:33
【问题描述】:
我关注了官方installation guide,但到目前为止还没有运气。我想知道cx_Oracle 可以在 AWS SageMaker 的虚拟环境中工作。到目前为止我使用的步骤是:
- 创建一个
/opt/oracle目录并在其中解压缩基本的instantclient。 sudo yum install libaio-
sudo sh -c "echo /opt/oracle/instantclient_18_3 > /etc/ld.so.conf.d/oracle-instantclient.conf"和sudo ldconfig - 最后将
LD_LIBRARY_PATH导出为:export LD_LIBRARY_PATH=/opt/oracle/instantclient_18_3:$LD_LIBRARY_PATH
当尝试使用connection = cx_Oracle.connect(usr + '/' + pwd + '@' + url) 在笔记本内运行连接时,我收到DPI-1047 错误代码,指出libclntsh.so 无法打开,但是该库 在@987654333 @ 文件夹。作为另一种选择,当通过终端 Python 控制台运行相同的连接时,我收到 ORA-01804 错误代码,表示时区文件未正确读取,这也是我正在尝试修复的问题,但怀疑与cx_Oracle 找不到它的库文件夹。 (现在,向我解释一下:为什么亿万富翁公司要创建一个像样的库导入和安装这么困难?)
有没有我遗漏的步骤?是否有我应该考虑的有关 AWS SageMaker 的详细信息?另外,还有其他选择可以通过 Python 和 AWS 从 oracle 服务器中提取数据吗?
【问题讨论】:
-
如果有人认识可以解决这个问题的人,我什至准备花相当多的钱来知道这个问题的解决方案。
-
我也很困惑,为什么亚马逊会让你这么难。我没有任何 AWS 经验,所以没有直接的答案。三个 cmets:(i) cx_Oracle 安装说明实际上位于 cx-oracle.readthedocs.io/en/latest/installation.html (ii) 您没有给出确切的错误 DPI 消息,这可能会有所帮助。 (iii) 配置 ldconfig 后,您不需要(不应该)设置 LD_LIBRARY_PATH。
-
我的评论实际上是针对 Oracle 使库如此容易出现配置错误(就像他们销售的许多其他软件一样),但我想它也适用于亚马逊。 (i) 您发布的链接与我遵循的教程具有相同的说明,这是您下载软件包时指向的那个; (iii)你是对的,我忘记了,只是我都做了,因为它们都不行。
-
(ii) 完整的错误是:
DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help. -
这可能是在黑暗中拍摄,但您能否详细说明您导出
LD_LIBRARY_PATH的位置? Jupyter 内核会话可能不会与您的终端会话共享环境变量。 (替代方法是将您的步骤移动到笔记本生命周期配置中,或使用%env指令)
标签: python-3.x amazon-web-services cx-oracle amazon-sagemaker