我們知道,Python使用cx_Oracle連接oracle的三個步驟是:
1、先安裝cx-Oracle包,地址:https://pypi.org/project/cx-Oracle/5.3/#files
2、下載Oracle客戶端instantclient-basic-win64-12.rar(我的電腦是64位,12是版本,還有11、10等),解壓后將oci.dll所在絕對路徑添加到環境變量中。
3、將instantclient_12_2下的所有.dll文件拷貝到python根目錄(即與python.exe同級)和F:\python\Lib\site-packages目錄下。
運行代碼出現異常:import cx_Oracle ImportError: DLL load failed: 找不到指定的模塊。
問題分析:
- 百度了解決方案 發現1,2,3,步驟完全正確。步驟沒問題
- 然后就是cx-Oracle和instantclient-basic-win64-12.rar的版本對應問題,我裝的cx_Oracle-7.3.0-cp35-cp35m-win_amd64.whl,問題不能解決;再卸載裝cx_Oracle-7.2.0.tar,依然不能解決。
- 網上說使用.exe可執行文件直接安裝cx_Oracle可以正常安裝;我就又卸載了cx_Oracle-7.2.0.tar,刪除instantclient的環境變量; 網上下載了cx_Oracle-5.3-12c.win-amd64-py3.5-2.exe, 按照1,2,3步重新裝了一次,成功了!
問題總結:
1、安裝的cx-Oracle時使用.exe可執行程序雙擊安裝,不要pip install XX.whl安裝;
2、cx-Oracle版本需要與instantclient版本適應,我裝的是12版(cx_Oracle-5.3-12c.win-amd64-py3.5-2.exe,instantclient-basic-win64-12.rar)。
3、也可以安裝cx_Oracle-5.3-11c.win-amd64-py3.5-2.exe和instantclient-basic-win64-11.rar, 11是版本,64是計算機位數,都要對應。
4、如果計算機上已經安裝了Plsql,那么先看下環境變量,應該已經配置了instantclient32,即32位的instantclient; 此時如果我們是64位計算機,要先安裝cx_Oracle-5.3-11c.win-amd64-py3.5-2.exe,再解壓instantclient-basic-win64-11.rar,不須再配置環境變量,只須把instantclient64位的所有.dll文件拷貝到python根目錄(即與python.exe同級)和F:\python\Lib\site-packages目錄下即可。
