Python安裝cx_Oracle模塊遇到的問題(32bit)


環境:

win7 32位系統

Python3.6 (32bit)

 

安裝模塊:

cx_Oracle模塊下載(下載地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle)

如是在網站上下載,切記需下載和python版本對應的.因為我之前在64位系統安裝時,一直用的是cx_Oracle-5.3+oci12c-cp36-cp36m-win_amd64.whl此文件,故此次安裝時就下載了對應32位系統的cx_Oracle‑5.3+oci12c‑cp36‑cp36m‑win32.whl.

使用pip install path 安裝,path是該文件的所在路徑

 

Oracle客戶端 instantclient_12_1(下載地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)

因為cx_Oracle文件下載的是cx_Oracle‑5.3+oci12c‑cp36‑cp36m‑win32.whl,對應的是32位且版本為12的

將下載的instantclient-basic-nt-12.1.0.2.0文件中的 oci.dll oraociei12.dll和oraocci12.dll三個文件拷貝到python安裝路徑(例如我自己D:\soft\Python36\Lib\site-packages)下.

 

問題

在IDLE中運行

1 import cx_Oracle

 

報錯:ImportError: DLL load failed:找不到指定的模塊

出現此問題的原因一般是:沒有copy 之前提到的oci.dll文件或者是Oracle客戶端版本與cx_Oracle版本不一致

而我已經copy了oci.dll文件。而且就文件名稱判斷來二者版本是一致的

我測試了所有12版本的Oracle客戶端,包括64位,均沒有成功。(測試64位的時候報錯:ImportError: DLL load failed: %1 不是有效的 Win32 應用程序,意思是操作系統、cx_Oracle和instantclient的位數不同,當時實在是想不到別的辦法,就各種嘗試)

后來意識到或許是cx_Oracle的問題。。。

 

解決辦法

在cmd中運行

pip install -U cx_Oracle

更新cx_Oracle模塊到最新版本,問題解決。

 


免責聲明!

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



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