Mac: Jupyter notebook 和 Pycharm 在本地使用python连接远程oracle数据库

这篇文章是接着之前的文章在mac上安装oracle instant client 和 sqlplus写的。

如果按照之前的文章已经下载并配置完oracle client,其实在Jupyter notebook 已经可以进行连接远程oracle的数据库了。对了!需要确保已经安装了cx_Oracle包,如果没有安装,打开terminal,输入pip install cx_Oracle即可。之后打开一个jupyter notebook,在cell 中输入:

 import cx_Oracle

con = cx_Oracle.connect('username', 'password', 'dsn')

如果没有报错,表明连接成功。

但是如果只是按照之前的文章,下载并配置oracle client,在pycharm中想用python连接远程oracle数据库,运行和jupyter notebook同样的code

     import cx_Oracle

    con = cx_Oracle.connect('username', 'password', 'dsn')

这时候会出现这个错误"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "

我看到网上的解决方法,可以点击这里查看原文,我也将其复制粘贴到下边:

    “ 原因是我的python2.7是64位的,并且装了cx_oracle6.1库,而数据库用了32位的instantclient-basic。

      解决方案:下载个64位的,然后解压,配置64位的instantclient-basic路径到系统环境变量Path,重新运 行python脚本即可”

但是我是安装了64位的instantclient,仍然出现这个错误"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: " 。如果上述解决方案同样不适合你的问题,可以试试我下面说的方法。

打开terminal,输入:

        mkdir ~/lib

        ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/

执行完上述两句,再重新运行cx_Oracle.connect在pycharm中,我相信会连接成功。

—— —— —— —— —— —— —— 这里是分界线 —— —— —— —— —— —— ——

如果没有按照我之前的文章安装oracle client,按照下面的方法应该可以成功。但是我没有尝试,尝试的小伙伴如果成功或者不成功,希望留言告诉我,之后再update这部分。

1. 进入网站,下载“basic” 或者“basic light” 的压缩文件,我下载的是12 version。选择和你所安装的python 位数相同的,例如你的python是64-bit,就选择64-bit的下载。

2. 解压压缩文件到 /opt/oracle 文件夹下:

     mkdir -p /opt/oracle

     cd /opt/oracle

     unzip ~/Downloads/instantclient-basic-macos.x64-12.2.0.1.0.zip

3. 这一步非常重要对于pycharm,否则就会报错“DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: " 。

     mkdir ~/lib

     ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/

4. 测试 

    import cx_Oracle

    con = cx_Oracle.connect('username', 'password', 'dsn')

如果解决了你的问题,就给我点个赞吧,谢谢!!!

有问题可以在下方留言。

你可能感兴趣的:(Mac: Jupyter notebook 和 Pycharm 在本地使用python连接远程oracle数据库)