Python虛擬環(huán)境工具眾多吝镣,我也使用了眾多工具,最終還是選擇了Anaconda下的conda工具作為虛擬環(huán)境搭建的工具昆庇,在正式開(kāi)始前末贾,說(shuō)一下我此前的環(huán)境。
系統(tǒng)環(huán)境:Mac Pro
使用pyenv作為python版本控制整吆,下載了python2.7拱撵、python3.6、python3.5等版本表蝙,使用pyenv-virtualenv作為虛擬環(huán)境控制的插件工具拴测,兩者其實(shí)挺好用的,然后我使用pyenv安裝了anaconda 4.4.0并再其下使用conda來(lái)創(chuàng)建虛擬環(huán)境府蛇,就是所謂的虛擬環(huán)境中的虛擬環(huán)境集索。
因?yàn)槟承┰颍瑢⑾到y(tǒng)當(dāng)前的pyenv相關(guān)的虛擬環(huán)境都刪除了汇跨,決定使用anaconda重新弄一套虛擬環(huán)境务荆,完全用conda來(lái)管理,不再弄那么復(fù)雜穷遂。
首先去anaconda官網(wǎng)安裝函匕,這里選擇安裝anaconda 5.5.0,其內(nèi)置python為python3.7蚪黑,這個(gè)包的大小為600多M盅惜,解壓安裝后會(huì)占用磁盤(pán)2.2G中剩,我也沒(méi)想到居然這么大,無(wú)奈抒寂。
安裝完后结啼,就要配置一下環(huán)境變量,Mac下的環(huán)境變量比較復(fù)雜屈芜,環(huán)境變量由多個(gè)文件控制妆棒,這些文件的優(yōu)先級(jí)也不同,因?yàn)楸救耸褂昧藌sh沸伏,所有處理在系統(tǒng)的環(huán)境變量配置文件中配置anaconda的路徑糕珊,還需要在zsh的環(huán)境變量配置文件中配置,這是必要的毅糟,不然zsh中也無(wú)法直接使用conda红选。
具體的路徑需要根據(jù)自己的路徑來(lái)確定。
因?yàn)楸镜夭辉偈褂肕ac自帶的命令行姆另,所以.bash_profile文件不用寫(xiě)也沒(méi)問(wèn)題喇肋,只使用zsh,還有需要提及的就是 echo"conda activate">>~/.zshrc在conda 4.4之后支持迹辐,此前的將conda引入PATH的方法變得不再推薦蝶防。
這樣就可以全局使用conda了,首先使用conda來(lái)創(chuàng)建一個(gè)虛擬環(huán)境
conda create -n tfpy36 python=3.6
創(chuàng)建完后明吩,先來(lái)安裝一下TensorFlow间学,這里安裝1.9版本的,當(dāng)前最新版為1.12印荔,不得不說(shuō)TensorFlow更新的很快低葫。
pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com --upgrade tensorflow==1.9
安裝完后,可以進(jìn)入python交互環(huán)境測(cè)試是否可以導(dǎo)入仍律,通常沒(méi)什么問(wèn)題嘿悬,然后我習(xí)慣性的安裝ipython與jupyter,帶來(lái)了問(wèn)題水泉。
ipython與jupyter都是在虛擬環(huán)境下安裝的善涨,但進(jìn)入ipython,發(fā)現(xiàn)是anaconda原本的python環(huán)境草则,即python3.7版本钢拧,此時(shí)無(wú)法通過(guò)ipython導(dǎo)入虛擬環(huán)境中安裝的TensorFlow,有點(diǎn)懵畔师,接著嘗試jupyter娶靡,也是同樣的情況牧牢,回想使用pyenv安裝anaconda再在改anaconda下創(chuàng)建虛擬環(huán)境并安裝TF不同看锉,在此前的環(huán)境中虛擬環(huán)境中安裝的ipython會(huì)被安裝在虛擬環(huán)境中姿锭,可以直接導(dǎo)入虛擬環(huán)境的TF。
這個(gè)問(wèn)題應(yīng)該不少見(jiàn)伯铣,所以查了一下呻此,anaconda為了避免你在不同的虛擬環(huán)境都每次都要安裝ipython或jupyter,將這些都安裝在了根環(huán)境腔寡,安裝 ipykernel解決問(wèn)題焚鲜,這個(gè)庫(kù)會(huì)為ipython或jupyter提供虛擬環(huán)境殼的支持。
conda install ipykernel
至此放前,整個(gè)環(huán)境搞定忿磅,conda除了可以使用python3,同時(shí)還可以使用python2凭语,非常方便葱她。
但還有可能在ipython可以使用不同版本的虛擬環(huán)境,但在jupyter無(wú)法使用不同版本的虛擬環(huán)境似扔,此時(shí)就可以安裝
conda install nb_conda
這樣就可以直接進(jìn)入jupyter選擇不同的虛擬環(huán)境了吨些,如下圖:
刪除環(huán)境
conda remove -n tfpy36 --all
激活環(huán)境
source activate tfpy36
退出環(huán)境
source deactivate
小結(jié)
python中很多工具都可以進(jìn)行版本控制與虛擬環(huán)境的控制,我使用個(gè)多種炒辉,但最總還是返璞歸真豪墅,使用anaconda提供的這套解決方案一勞永逸。
2018版的PyCharm本身也支持創(chuàng)建新項(xiàng)目時(shí)黔寇,在工作目錄創(chuàng)建相應(yīng)的python環(huán)境偶器,但我個(gè)人通常不這么做,因?yàn)槊總€(gè)項(xiàng)目都創(chuàng)建一個(gè)python虛擬環(huán)境其實(shí)沒(méi)什么必要缝裤,只需要幾個(gè)主的python虛擬環(huán)境則可状囱,比如做web的,就創(chuàng)建pyweb虛擬環(huán)境倘是,以后web相關(guān)的開(kāi)發(fā)都使用該虛擬環(huán)境亭枷,這樣方便管理。