1. 程式人生 > >多個版本的Python同時連線Oracle和安裝cx_Oracle問題解決

多個版本的Python同時連線Oracle和安裝cx_Oracle問題解決

前兩篇文章中講述了在同一臺機器上安裝和配置Python2.x和3.x版本的環境,並使它們共存以及在VS中編輯和執行Python的方法,這篇文章來說一說用Python操作Oracle要做的準備工作——cx_Oracle模組在Python2.x和3.x中的安裝方法。

當電腦中同時安裝了Python2.7 和 Python3.5後,為了能用兩個版本的Python 都能順利連線到Oracle,就需要分別安裝py2.7和py3.5對應版本的cx_Oracle模組。需要注意的是,cx_Oracle模組的早期版本比如py2.7對應的版本好像不支援pip安裝,再用pip安裝時會報一個‘找不到對應版本軟體’的錯誤,這時我們可以用安裝包來進行安裝,可以到我的CSDN資源列表進行下載:(連結待更新)下載後點擊下一步下一步傻瓜式操作進行安裝即可,注意一下安裝路徑,安裝到Python2.7對應的安裝路徑下最好。安裝完成後開啟IDLE測試,import cx_Oracle,如果不報錯說明安裝成功。py2.7對應的cx_Oracle在win10下安裝的還算順利,需要特別指明的是,應該選對安裝版本,還應該下載oracle的instantclient檔案並進行一些環境變數的配置才行,否則可能導致安裝不能成功,詳細內容請參考另一個作者的連結為:http://blog.csdn.net/eden_hu2016/article/details/51148725的文章《Win64安裝cx_Oracle過程》由於其敘述簡單清楚,所以不再贅述。

下面主要講述一下WinPython3.5.3中安裝cx_Oracle的過程和報錯的解決方法。

py3.5可以支援cx_Oracle的pip安裝,但是直接用pip執行安裝命令並安裝完成後,在IDLEX中import cx_Oracle後可能直接導致Python程式崩潰或者報no moudle named cx_Oracle的錯誤,如果是第一種情況,python程式直接崩掉就需要WinPython 3.5的控制檯中執行 uninstall cx_Oracle的命令將cx_Oracle模組解除安裝下來,然後在從IDLEX中進行import cx_Oracle的測試,知道報錯為no moudle named cx_Oracle為止。由於在安裝py2.7對應的cx_Oracle時已經安裝和配置過oracle instantclient 的相關內容,所以理論上在為py3.5安裝對應版本的cx_Oracle時應該不必重複這一步驟。

說一下經過測試安裝成功的一個安裝步驟:

1、下載cx_Oracle-5.3-11g.win-amd64-py3.5-2.exe安裝包進行安裝(下載連結:http://download.csdn.net/detail/supergiser_lee/9853427),會報Python version 3.5 required which was not found in the registry 的錯誤而導致安裝失敗,如下圖:



2、發生上述錯誤後取消安裝,開啟WinPython 3.5.3的控制檯,再次執行 pip install cx_Oracle的命令,直到安裝完成

3、在WinPython3.5.3的IDLEX中import cx_Oracle模組不再報錯,說明安裝成功。


猜測藍色圖片中的報錯應該是由於使用的 WinPython 3.5.3是綠色版的,並未在系統中寫入登錄檔的原因,http://blog.itpub.net/29802484/viewspace-2129952/ 這篇文章給出瞭解決方法,修改登錄檔,但是我們並不想將綠色版的python 環境寫入登錄檔,所以最好採用我上面敘述的步驟來安裝cx_Oracle-5.3-11g.win-amd64-py3.5-2.exe,我在兩臺x64的win10電腦上按同樣的步驟測試後均成功。