python3.7安装cx_Oracle

2023-01-31 01:01:55 安装 python3 cx

操作系统: win7-32bit
python版本:3.7.0
oracle版本:10.2.0

// pip方式安装
// 打开cmd输入如下命令
pip install cx_Oracle

自动下载并安装完成后,进入C:\Users\Administrator\AppData\Local\Programs\Python\python37-32\Lib\site-packages查看。可以看到安装的是7.0.0版本。

>>>import cx_Oracle
>>>conn = cx_Oracle.connect('Username/passWord@Host:Port/SERVICE_NAME') 
// 报错:提示安装的oracle版本过低
>>>cx_Oracle.DatabaseError: DPI-1050: Oracle Client library is at version 10.2 but must be at version 11.2 or higher

问题原因

由于这是我几年前就装的oracle客户端,已经跟不上时代了。起初想着要么干脆下个11.2以上的版本算了。可当我到oracle官网想要下载时,发现还要注册官网账号!懒得注册,于是找了度娘。
发现可以通过把instantclient11.2中的oci.dll、oraocci11.dll、oraociei11.dll提取出来,放到PY目录的Libs/site-packages文件夹下。电脑里正好有instantclient-basic-nt-11.2.0.3.0-x86.zip,于是尝试:

  1. 放到目录C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\Lib\site-packages。失败,还是提示版本过低。
  2. 放到目录C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages。成功连接数据库!!!因为我之前用plsql可以成功连接数据库,所以也不需要再配置环境变量了。

PS:为什么1中的目录不行?如果有大神看到希望能帮忙解答一下。谢谢!
2019/2/2----找到原因:由于我安装了Thonny,生成了C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages。删除该目录后,将三个dll放到C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\Lib\site-packages,再次尝试数据库连接。成功!

相关文章