如何为Google Colaboratory安装cx_oracle python模块

时间:2019-04-02 12:26:38

标签: python oracle google-cloud-platform google-colaboratory

我真的不得不问关于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。

1 个答案:

答案 0 :(得分:2)

这不是理想的解决方案,而是一种解决方法,即先通过外星人安装官方RPM,然后再进行安装! cx_python有效。

  1. 下载官方的Oracle Instant Client基本Lite RPM https://download.oracle.com/otn_software/linux/instantclient/193000/oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm
  2. 将RPM放在Gdrive中的某个位置
  3. 安装Gdrive

    from google.colab import drive ROOT = "/content/blah" drive.mount(ROOT)

  4. 安装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,对我有用