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