python3.5通过cx_Oracle连接oracle11g数据库

在下载使用cx_Oracle的时候遇到一些坑,在此记录一下:

我电脑的情况:

1. 之前手动安装了python2.7,并未卸载

2. 安装了Anaconda(python3.5),作为我的python开发工具

3. 电脑上已经装好了oracle11g数据库

因此,由于我使用的是anaconda来开发,没有做其他特殊配置的情况下,编译运行环境应该是python3.5。

首先通过学习https://www.cnblogs.com/lansan0701/p/8039332.html,对要安装的cx_Oracle有了了解(oracle、python、cx_Oracle要保持版本一致),于是在https://pypi.python.org/pypi/cx_Oracle/5.3下载了cx_Oracle-5.3-11g.win-amd64-py3.5-2.exe,双击运行,报错:Python version 3.5 required, which was not found in the registry。因此怀疑是python的环境变量有问题,于是查看环境变量path,发现python2.7的环境变量在anaconda之前,因此我把anaconda的环境变量移动到python2.7之前,再次双击安装,还是报同样的错误,然后我又找到python3.5的安装目录,创建python3.5的环境变量,并移动到python2.7的环境变量之前,再次双击运行,还是报同样的错误。经过网上查询,发现可能原因是:python2.7是我手动安装的,而python3.5是安装anaconda的时候自动安装的,因此系统注册表中应该只记录了python2.7,而没有记录python3.5,网上提供了解决办法https://blog.csdn.net/longxj04/article/details/64922138,但我觉得太麻烦,再想想其他办法。

在之前查询资料时,我知道除了下载exe进行安装之外,还可以下载whl安装(https://blog.csdn.net/weixin_37674494/article/details/77069517),还可以执行conda install -c https://conda.anaconda.org/anaconda cx_oracle命令或pip install cx_Oracle命令进行安装。

由于没有找到合适版本的whl (https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle),我的数据库是11g,但里面只找到12c的5.3的cx_Oracle,因此暂时放弃;

我在Anaconda Prompt中执行了命令conda install -c https://conda.anaconda.org/anaconda cx_oracle,安装成功!(由于有环境变量,在cmd命令行应该也可以)

Anaconda Prompt入口

我想,pip install cx_Oracle命令应该也能搞得定,但由于要保持版本一致,所以执行命令前需要把python3.5的环境变量移动到python2.7之前,才能保证下载的cx_Oracle满足要求。

附带连接基础代码:

import pandas

import cx_Oracle as ora

conn = ora.connect('python/pythontest@localhost/orcl')   
cursor = conn.cursor ()
cursor.execute('select code from test_houses')
rs=cursor.fetchall()  
hadHouses=pandas.DataFrame(rs);
cursor.close ()
conn.close ()
hadHouses.columns = ['code']

猜你喜欢

转载自blog.csdn.net/aiyo92/article/details/86479284
今日推荐