64位Python調用32位Oracle客戶端報錯 cx_Oracle.DatabaseError: DPI-1047


問題

操作系統64為,Python64位,Oracle客戶端32位。因為其他原因,不能將Oracle客戶端改成64位,所以導致cx_Oracle64位無法使用,cx_Oracle32位無法安裝。

原因

Windows環境下,如果安裝的是64位Python,在使用cx_Oracle時,默認調用的是64位Oracle客戶端,這時我們也只能安裝cx_Oracle的-win_amd64位版。

解決方法:

1.先去安裝與當前Python版本相匹配的cx_Oracle,我的是Python3.8。安裝的版本為:cx_Oracle-8.3.0-cp38-cp38-win_amd64.whl

2.下載相關的Oracle instantclient(即時客戶端),並解壓到方便調用的文件夾

下載地址:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

我下載的版本為:instantclient-basiclite-windows.x64-19.13.0.0.0dbru.zip,可以多試幾次,總有一款適合你

3.解壓instantclient,在python代碼中,更改環境變量,以調整Oracle驅動位置。

我這邊解壓后的地址為:

E:\software\Python\instantclient-basiclite-windows.x64-19.13.0.0.0dbru

代碼調整方式為

import os
os.environ['path'] =  r'E:\software\Python\instantclient-basiclite-windows.x64-19.13.0.0.0dbru\instantclient_19_13'

import cx_Oracle

現在cx_Oracle就可以正常調用了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM