Miniconda——搭建Python開發(fā)環(huán)境的最優(yōu)解
導(dǎo)讀
相信很多IT從業(yè)者程序員都或多或少的存在一些強(qiáng)迫癥屬性,可能的表現(xiàn)包括:對軟件安裝的位置選擇、代碼編寫的變量命名規(guī)范、文件歸檔分類等,有時(shí)候不能按照自己的預(yù)期進(jìn)行配置總會暗自不爽——我個人是有這種感覺的。
最近,在重新組織自己個人電腦的Python開發(fā)環(huán)境時(shí),因?yàn)樵鶳ip無法安裝某個包,較為簡單的解決辦法是使用conda,于是便又重新折騰了一番,最終發(fā)現(xiàn)Miniconda或許可以成為自己搭建Python開發(fā)環(huán)境的最優(yōu)解。本文特此記錄。

Miniconda文檔及下載:https://conda.io/en/latest/miniconda.html
Windows 10操作系統(tǒng),主用Python3.8版本 需要安裝Python基礎(chǔ)的解釋器,以供Pycharm、Vscode和jupyterlab 使用 需要對虛擬環(huán)境的支持(或多或少存在),比如一個用于搭建爬蟲環(huán)境、一個用于搭建機(jī)器學(xué)習(xí)環(huán)境(統(tǒng)一用一個會造成第三方包過于臃腫,Pycharm加載過慢的問題) 部分包用pip安裝困難,但是用conda則會簡單的多(此次遇到的是prophet包,用pip安裝解決gcc依賴簡直是噩夢)
與此同時(shí),個人對Anaconda沒有太多好感:一方面源于其提供了很多IDE的入口,但卻又并不實(shí)用;另一方面是anaconda管理的虛擬環(huán)境都會內(nèi)置很多數(shù)據(jù)科學(xué)工具包,相當(dāng)于你買了一臺手機(jī)安裝了很多出廠應(yīng)用——當(dāng)然,如果看著不順眼,是可以選擇手動給它uninstall的。
于是,一邊厭惡于Anaconda的臃腫和繁雜,另一邊又似乎存在對conda管理虛擬環(huán)境的剛需——二者結(jié)合,似乎Miniconda便順其自然成了最優(yōu)解!嘗試一番,體驗(yàn)果真不錯!

更重要的是,安裝了Miniconda就相當(dāng)于可以在命令行中使用conda工具,conda工具可以直接管理Python第三方庫的安裝,也可以管理虛擬環(huán)境。二者的功能并不相同,個人認(rèn)為核心區(qū)別可概括為三個方面:
支持功能:pip僅可用于安裝python包,而conda不僅可以安裝python包,還可以用于管理虛擬環(huán)境,同時(shí)創(chuàng)建新的虛擬環(huán)境時(shí)還可支持不同的Python版本,例如你安裝了內(nèi)置Python3.8的miniconda,但可以創(chuàng)建一個Python3.7的虛擬環(huán)境——如果
安裝包類型:pip僅能安裝Python第三方庫,而conda除了Python語言的包之外,還支持C++、R等其他類型庫的安裝(這也是為什么conda可以直接解決windows下的gcc依賴問題)
安裝包來源:pip安裝的第三方庫來源于pypi.org,而conda安裝的第三方庫來源于conda repo(準(zhǔn)確的說,pip的第三方庫數(shù)量會更多一些),前者是.whl或python源碼文件(利用setuptools安裝),而后者則是二進(jìn)制文件
所以,不嚴(yán)謹(jǐn)?shù)闹v,在Miniconda面前,安裝官方Python軟件沒有任何優(yōu)勢!
當(dāng)然,Pycharm也是支持管理虛擬環(huán)境的,但相較于conda建立系統(tǒng)級的虛擬環(huán)境而言,Pycharm似乎更傾向于搭建一個Project級別的虛擬環(huán)境。
安裝好了Miniconda,也需要類似Pip一樣配置鏡像源,一般是直接在用戶根目錄下建立一個.condarc文件,并寫入國內(nèi)的conda鏡像地址即可,例如:
ssl_verify: truechannels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- defaultsshow_channel_urls: true
之后,即可暢快地使用conda帶來的便利了。如果某些過于前沿的第三方庫用conda找不到時(shí)(conda支持的python第三方庫數(shù)量少于pip),當(dāng)然也是可以使用pip install的。

相關(guān)閱讀:
