python 雖然好用,但是項目一多,依賴的管理就是個大問題了,新項目已經(jīng)全在用 python3,而老項目都是 pthon2,更蛋疼的是,不同項目之間還可能依賴了同一個庫的不同版本!我們試著解決這個問題:
pip: 解決項目的全局依賴問題
最開始的時候,我們都是手動安裝庫,而庫可能還有依賴的庫,這樣最終會形成一張樹的依賴結(jié)構(gòu)。解決這個問題,我們可以使用 pip。
它主要解決包的問題,包括安裝、更新、刪除等。
簡介: https://pip.pypa.io/en/stable/quickstart/
安裝: https://pip.pypa.io/en/stable/installing/
virtualenv: 解決不同項目間使用同一依賴不同版本的問題
pip 可以幫助我們方便地安裝項目需要的依賴,不過隨著項目的變多,我們可能會在不同的項目里使用同一個庫的不同版本,甚至python 的不同版本,這時,需要一個新的工具來解決這個問題: virtualenv。
它可以幫助我們創(chuàng)建一個虛擬、獨立的依賴環(huán)境,以保證每個項目可以使用指定的依賴,包括 python、第三方庫等。
virtualenv官網(wǎng)
virtualenv簡介
conda: 解決非python依賴的問題,以及簡單統(tǒng)一的操作方式
pip 和 virtualenv的組合,可以解決絕大部分 python的依賴管理問題,但是,隨著項目的發(fā)展,我們可能需要非 python 的依賴,來解決現(xiàn)有問題。
conda 作為一個打包工具和安裝程序,可以幫助我們解決主流的開發(fā)環(huán)境和依賴的問題,除 python 外,它還支持:R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN等語言。一定程度上,可以把它看著 pip 和 virtualenv 的結(jié)合(實際上,pip 和 conda 是互補的關(guān)系,因為 pip 可以安裝一部分 conda 不能安裝的依賴)。
官網(wǎng) (很卡,不推薦,建議使用下面的鏡像)
國內(nèi)鏡像
總結(jié)
virtualenv和conda都是通過修改 shell 里的環(huán)境變量來達(dá)到修改環(huán)境的目的,基本原理類似。
不同的項目可以用不同的工具,不要求全,適合才是最好的。
Pycharm 對以上工具都有很好的支持,善用工具可以極大提高效率。
以下是參考資料:
Anaconda介紹、安裝及使用教程
Anacodna之conda與 virtualenv對比使用教程,創(chuàng)建虛擬環(huán)境