在 linux 上管理 python 環(huán)境,主要使用虛擬環(huán)境工具來隔離依賴和版本,常見工具為 virtualenv 和 conda。一、virtualenv 是輕量級的 python 專屬工具,適合僅需管理 Python 包、熟悉 pip 生態(tài)的場景,操作包括安裝、創(chuàng)建環(huán)境、激活環(huán)境。二、conda 是功能更全面的包和環(huán)境管理器,支持多語言依賴、python 版本切換和預(yù)編譯包安裝,適合數(shù)據(jù)科學(xué)和復(fù)雜依賴項(xiàng)目。三、選擇上,若進(jìn)行 web 開發(fā)或腳本任務(wù),virtualenv + pip 足夠;若涉及數(shù)據(jù)分析或跨語言依賴,則推薦 conda。兩者各有適用場景,核心目標(biāo)均為實(shí)現(xiàn)項(xiàng)目環(huán)境隔離。
Linux 上管理 Python 環(huán)境,主要靠虛擬環(huán)境工具來隔離不同項(xiàng)目所需的依賴和版本。常見的工具有 virtualenv 和 conda,它們都能幫你創(chuàng)建獨(dú)立的運(yùn)行環(huán)境,但使用方式和適用場景略有不同。
一、virtualenv:專注 Python 的輕量級虛擬環(huán)境
virtualenv 是 Python 社區(qū)中非常經(jīng)典的虛擬環(huán)境管理工具,它的核心功能是為每個(gè)項(xiàng)目創(chuàng)建一個(gè)獨(dú)立的 Python 環(huán)境,避免不同項(xiàng)目之間的依賴沖突。
使用方法也很簡單:
立即學(xué)習(xí)“Python免費(fèi)學(xué)習(xí)筆記(深入)”;
-
安裝:
pip install virtualenv
-
創(chuàng)建環(huán)境:
virtualenv venv
-
激活環(huán)境:
source venv/bin/activate
激活后,你安裝的所有包都會(huì)被限制在這個(gè)環(huán)境中,不會(huì)影響系統(tǒng)全局或其他項(xiàng)目的依賴。
適合場景:
- 只需要管理 Python 包和版本。
- 不涉及非 Python 類型的依賴(比如 C 庫、編譯器等)。
- 已經(jīng)熟悉 pip 和標(biāo)準(zhǔn) Python 生態(tài)。
二、conda:更全面的環(huán)境和包管理器
conda 是 Anaconda 發(fā)行版中的核心工具,它不僅可以管理 Python 虛擬環(huán)境,還能處理各種語言的依賴(如 R、C/c++庫等),甚至可以管理不同版本的 Python 解釋器本身。
基本操作:
-
創(chuàng)建環(huán)境并指定 Python 版本:
conda create -n myenv python=3.9
-
激活環(huán)境:
conda activate myenv
-
安裝包:
conda install numpy
或者用 pip 安裝:
pip install requests
優(yōu)勢在于:
- 支持跨語言、跨平臺(tái)的依賴管理。
- 可以輕松切換 Python 版本。
- 預(yù)編譯的包較多,安裝速度更快。
適合場景:
- 數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)項(xiàng)目(通常會(huì)用到很多預(yù)編譯的數(shù)學(xué)庫)。
- 需要同時(shí)管理多個(gè)語言或復(fù)雜依賴的項(xiàng)目。
- 希望快速部署環(huán)境而不用自己編譯。
三、virtualenv vs conda:怎么選?
功能 | virtualenv | conda |
---|---|---|
僅管理 Python? | ? | ?(還支持其他語言) |
安裝速度快 | ?(依賴 pip) | ??(有預(yù)編譯包) |
多語言支持 | ? | ? |
切換 Python 版本 | ?? 需配合 pyenv | ? 內(nèi)置支持 |
占用空間 | 較小 | 較大 |
是否需安裝額外發(fā)行版 | ?(只裝 virtualenv) | ?(需要安裝 Anaconda 或 Miniconda) |
如果你只是做一般的 Web 開發(fā)、腳本編寫或者自動(dòng)化任務(wù),virtualenv + pip 就夠用了。但如果涉及到數(shù)據(jù)分析、ai、科學(xué)計(jì)算等領(lǐng)域,conda 更加方便省心。
基本上就這些。不管是 virtualenv 還是 conda,關(guān)鍵都是為了讓你在不同項(xiàng)目之間互不干擾地工作。選哪個(gè),看你的項(xiàng)目需求和習(xí)慣就好。
以上就是Linux如何管理Python環(huán)境?virtualenv和conda有什么