Python和Oracle DB - “错误DPI-1050:Oracle客户端库必须为11.2或更高版本”

问题描述 投票:1回答:1

几天前,我被要求开发一个能够连接到Oracle DB的Python应用程序。由于我已经安装了Oracle客户端(版本12.2.0),我只是pip安装了cx_Oracle并尝试使用以下代码建立连接:

import pandas as pd
import cx_Oracle

connection = cx_Oracle.connect('username/password@service_as_described_in_tnsnames.ora')
cur=connection.cursor()

input("Press Enter to continue...")

cur.execute('select* from MY_PRETTY_TABLE')
for line in cur:
    print()

cur.close()
connection.close()

但是当试图运行它时,我得到错误“DPI-1050:Oracle客户端库必须是11.2或更高版本”。谷歌搜索后,我发现this回答,并试图将我的代码更改为:

my_dsn = cx_Oracle.makedsn("host",port,sid="sid")
connection = cx_Oracle.connect(user="user", password="password", dsn=my_dsn)
cursor = connection.cursor()

querystring = "SQL query"
cursor.execute(querystring)

但是,同样的错误。重要的是要注意我已经在同一台机器中使用了Oracle DB客户端,以便将数据库与Power BI连接起来。

此外,如果它有用,我的路径设置为:

C:\instantclient_12_1
C:\Users\oracle2\product\12.1.0\client_1
C:\Users\oracle2\product\12.1.0\client_1\bin
C:\Users\oracle\product\12.2.0\dbhome_1\bin
python database oracle cx-oracle
1个回答
3
投票

该错误意味着您在PATH中的某个位置安装了另一个旧版本的Oracle客户端。您应该在您的计算机上搜索OCI.DLL(使用where.exe或dir命令)并移动或删除任何不必要的副本或根据需要调整PATH。例如,一些较旧的应用程序不正确地将OCI.DLL填入C:\ Windows \ System32。

© www.soinside.com 2019 - 2024. All rights reserved.