Anaconda 創建 32位python虛擬環境
最近實習在做一個接口自動化數據上傳的功能,因為數據是更新的,需要每次上傳都查詢數據庫調用匹配,就不得不面對 python 連接 oracle 。一直很排斥這玩意,我覺得python連接oracle是一個很蹩腳的東西。網上教程其實挺多的,首先安裝cx_oracle,安裝的時候要注意兩個東西:
-
oracle-client架構(有64,也有32)
-
python 架構(一般是64位)
然后python oracle—client 和cx_oracle的架構必須是相同的位數,因為開發環境用的是 oracle 32位的客戶端,而我默認的python是32位的,所以在嘗試驅動的時候一直報錯 1047,嘗試了bing上能搜到的幾乎所有方法,一直不成功,報錯大概的意思是 oli.dll 不受支持。
猛然醒悟,這怕是64 位python 和32位 client兼容的問題!
但同時又有另一個問題,就是64位的python是不能直接安裝32位的擴展包的,考慮到功能的移植性,最終選擇32位的虛擬 py 環境
因為我安裝的是64位的conda,所以默認的python,甚至默認的虛擬環境也是 64 位的,通過百度,得知win10 有一個32 位的模式,先切換到32位模式:
set CONDA_FORCE_32BIT=1
切換成功不會有任何的提示信息
然后使用conda創建虛擬環境,此時創建出來的虛擬環境就是32位了
conda create auto -n python=3.6
創建成功后就可以正常的安裝 32位的cx_oracle,安裝后就一切正常了,數據庫也能夠正常的連接了
創建完成后,就可以關閉系統的32位模式
``set CONDA_FORCE_32BIT=0`
如此之后,只要激活auto,此時的python就是 32 位的架構了
如圖,當我關閉了32位模式后,虛擬環境的python也是32位的架構