我真的不得不问关于stackoverflow的第一个问题! 我正在尝试使用cx_Oracle Python模块在Google Colab中使用SQL查询。但是,要使cx_oracle正常运行,我需要安装Oracle Instantclient-这是一个问题,因为Colab在VM上工作。没有客户端,我会收到错误消息:
“ DatabaseError:(cx_Oracle.DatabaseError)DPI-1047:无法找到 64位Oracle客户端库:“ libclntsh.so:无法打开共享库 文件:没有这样的文件或目录。”
我试图将oracle Instantclient_18_5解压缩的文件夹放入Colab脚本所在的GDrive中。之后,我尝试更改LD_LIBRARY_PATH指向它,但是无论我做什么,LD_LIBRARY_PATH目录都是/ usr / local / nvidia / lib:/ usr / local / nvidia / lib64。
!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
我想将Oracle客户端安装到google VM上,或者做一些可以从Gdrive上获取它的事情。不管能做什么,所以我可以在Google Colab上使用cx_oracle就足够了。
编辑:为明确起见,将我的Oracle SQL数据库连接到Google Colab python笔记本的任何方式都可以!不必专门通过cx_oracle。
答案 0 :(得分:2)
这不是理想的解决方案,而是一种解决方法,即先通过外星人安装官方RPM,然后再进行安装! cx_python有效。
安装Gdrive
from google.colab import drive
ROOT = "/content/blah"
drive.mount(ROOT)
安装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
hwala,对我有用