使用Python連接Oracle數(shù)據(jù)庫的環(huán)境非常麻煩,尤其在window下的配置,默認(rèn)情況下需要安裝Oracle數(shù)據(jù)庫才行,對(duì)于不想在機(jī)器上安裝Oracle的用戶來講,安裝過程會(huì)出現(xiàn)各種問題。最常見的如下:
創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為武穴企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè),武穴網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。安裝出錯(cuò):distutils.errors.DistutilsSetupError: cannot locate Oracle include files in……
運(yùn)行出錯(cuò):cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle ……
從網(wǎng)絡(luò)查找了很多資料,方法基本類似,但是有誤導(dǎo)的地方,所以,刻意實(shí)驗(yàn)并記錄一下,以便日后參考,并希望能夠幫到遇到類似問題的朋友。此次安裝環(huán)境為Window 10 64bit+Miniconda3-latest-Windows-x86_64.exe+instantclient-basic-windows.x64-11.2.0.4.0.zip,其他環(huán)境,比如python2.7、python3.5及其他版本windows操作系統(tǒng)和instantclient-basic-windows.x64-12.1.0.2.0.zip也可以參考解決。
解決步驟:
下載cx_Oracle的.exe文件。
在windows下使用easy_install或者pip會(huì)出現(xiàn)報(bào)錯(cuò):distutils.errors.DistutilsSetupError: cannot locate Oracle include files in...,所以,需要使用.exe文件進(jìn)行安裝。打開網(wǎng)址https://pypi.python.org/pypi/cx_Oracle,在頁面選擇適合自己操作系統(tǒng)、Python版本、Oracle版本的鏈接下載即可。
下載Oracle Instant Client
? 從 Oracle官方網(wǎng)站(一定是在英文網(wǎng)站進(jìn)行下載,中文網(wǎng)站更新較慢,最新版本為11.2.0.3.0,且下載速度超慢)下載Oracle Instant Client for Microsoft Windows(x64),在這里下載的是11.2.0.4.0版本的,其他版本沒有嘗試。 下載解壓到目標(biāo)文件夾,本次解壓到D:\software\Oracle\instantclient_11_2
中,并將該路徑添加到系統(tǒng)的環(huán)境變量,命名為ORACLE_HOME,將ORACLE_HOME添加到path下,否則會(huì)報(bào)錯(cuò) cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle ,本例中為:ORACLE_HOME=D:\software\Oracle\instantclient_11_2 上述步驟完成之后,重新進(jìn)入Python交互環(huán)境,然后使用下面的代碼進(jìn)行測試:
>>> import cx_Oracle>>> db=cx_Oracle.connect('rhin/rhin@10.100.101.40/imis')>>> print(db.version)11.2.0.1.0>>>
至此,整個(gè)過程完成。注意,不需要再本機(jī)上安裝Oracle,也不需要新建NETWORK/ADMIN目錄添加tnsnames.ora文件,更不要把oci.dll移到site-packages。 整個(gè)過程主要參考 淡水的天空|Python cx_Oracle 安裝小記 ,在此表示感謝。本文章內(nèi)容應(yīng)該也可以解決Linux不安裝Oracle使用SQLAlchemy的問題,但沒有進(jìn)行相應(yīng)的驗(yàn)證。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。