第一个问题我真的不得不问stackoverflow!我正在尝试使用cx_Oracle Python模块在Google Colab中使用SQL查询。但是,要让cx_oracle正常运行,我需要安装Oracle instantclient--这是一个问题,因为Colab在VM上工作。没有客户端,我得到错误:
“数据库错误:(cx_Oracle.DatabaseError)DPI-1047:找不到64位Oracle客户端库:“libclntsh.so:无法打开共享目标文件:没有这样的文件或目录“.”
我尝试将oracle instantclient_18_5解压文件夹放入我的GDrive中,其中有Colab脚本。之后,我尝试更改LD_LIBRARY_PATH以指向它,但无论我做什么,LD_LIBRARY_PATH目录都是/usr/local/nvidia/lib:/usr/local/nvidia/lib 64。
!sudo apt-get install python-dev build-essential libaio1
!python -m pip install cx_Oracle --upgrade
我尝试了很多在互联网上找到的代码来改变这个LD_LIBRARY_PATH,但无济于事。示例:“”
!export LD_LIBRARY_PATH="/content/gdrive/Team Drives/.../instantclient_18_5":$LD_LIBRARY_PATH
我想要么安装甲骨文客户端到谷歌虚拟机,或做一些事情,它可以把它从Gdrive。只要我能在Google Colab上使用cx_oracle,对我来说就足够了。
编辑:澄清一下,任何将我的Oracle SQL数据库连接到Google Colab Python笔记本的方式都可以!不需要专门通过cx_oracle。
1条答案
按热度按时间c0vxltue1#
不是一个理想的解决方案,但一个变通方案,这是安装官方RPM通过外星人,然后繁荣!cx_python可以工作。
1.下载官方Oracle Instant客户端基本精简版RPM https://download.oracle.com/otn_software/linux/instantclient/193000/oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm
1.将RPM放在Gdrive中的某个位置
1.安装Gdrive
from google.colab import drive ROOT = "/content/blah" drive.mount(ROOT)
1.安装alien和cx_Oracle
!pip install cx_Oracle #install Oracle client library !apt install alien !alien -i /content/blah/foo/bar/oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm