在 Python 中創建虛擬環境時,通常使用 python -m venv。但是,在數據科學或人工智能領域,還有一個廣泛使用的環境管理工具 Conda。Conda 是一個強大的工具,可以幫助管理 package 和環境。

在這篇文章中,我們將了解 Conda 的概念,Anaconda 和 Miniconda 的區別,以及 Conda 環境是如何與系統分離運作的。


1. Conda 是什麼?

Conda 是一個在數據科學、人工智能和機器學習領域廣泛使用的 package 和環境管理器。它最初是為 Python 開發的,但現在支持 RRubyLua 等多種語言。

通過 Conda,可以高效地執行以下操作:

  • 一次安裝和管理多種 package
  • 創建與操作系統獨立的虛擬環境
  • 按項目保持不同的 Python 版本

相關術語整理

  • Conda 環境 (environment): 擁有獨立 package 空間的虛擬環境
  • conda-forge: Conda 社區維護的 package 存儲庫
  • Anaconda: 包含 Conda 和數據科學常用 package(如 Numpy、Pandas、Jupyter 等)的發行版
  • Miniconda: 僅包含 Conda 的最小安裝發行版,可以選擇需要的 package 進行安裝

2. 為什麼選擇 Conda?與 python -m venv 的比較

Python 標準庫中存在一個名為 venv 的虛擬環境創建工具。儘管如此,在數據科學領域,Conda 更受偏愛的原因如下:

  • venv 只管理 Python package,而 Conda 可以一起管理 非 Python 依賴項(如 C、C++、CUDA 等)
  • Conda 在 解決 package 版本衝突方面表現優異,並且會自動配置操作系統特定的二進制文件
  • venv 環境中,必須使用 pip 安裝所有東西,但 Conda 可以通過如 conda-forge 這樣的 package 通道 管理可靠的發佈

也就是說,在科學計算或機器學習環境中,與各種外部庫的衝突解決能力至關重要,而 Conda 在這方面表現出色。


3. Anaconda 和 Miniconda 的區別

項目 Anaconda Miniconda
基本容量 非常大(約 3~4GB) 非常小(幾百 MB)
包含 package 包括 numpy、pandas、matplotlib、Jupyter 等 僅包含 Conda
安裝時間 較長 較快
適合對象 初學者、希望立即開始開發的用戶 輕量安裝、需要選擇 package 的用戶

Anaconda 的特點

  • 安裝後即可進行數據分析
  • 包含視覺化工具、Jupyter Notebook 等

Miniconda 的特點

  • 輕便且快速安裝
  • 僅選擇必要的進行安裝→靈活性高

4. Conda 環境是如何與系統分離的?

Conda 環境在完全獨立的目錄內創建。這帶來了以下優勢:

  • 不影響系統 Python 環境
  • 每個項目可以構建獨立的環境
  • 可以將環境保存為 .yml 文件,方便輕鬆重現

與 Docker 的區別比較

項目 Conda Docker
分離級別 用戶級(虛擬環境) 操作系統級(容器)
使用目的 package 和庫管理 整個系統隔離和部署
容量 相對輕量 較重
執行速度 快速 可能較慢(包括啟動映像時)

Docker 提供了完全的隔離,而 Conda 較為輕便且設置簡便,因此在數據科學領域中,往往僅用 Conda 就足夠了。


5. 安裝方法

Anaconda 安裝方法

  1. https://www.anaconda.com/download 下載適合操作系統的安裝文件
  2. 通過 GUI 安裝嚮導或 CLI 方式進行安裝
  3. 安裝完成後,可以使用 anaconda-navigatorconda 命令

Miniconda 安裝方法

  1. https://docs.conda.io/en/latest/miniconda.html 下載安裝文件
  2. 安裝後使用 conda initconda config 進行環境設置

6. 下篇預告

在這篇文章中,我們探討了 Conda 的概念及其代表發行版 Anaconda 和 Miniconda 的區別。此外,還說明了為什麼 Conda 更適合科學作業而非 -m venv

在下一篇文章中,我們將介紹如何實際創建和管理 Conda 環境,具體涵蓋以下內容:

  • 通過 conda create 創建環境
  • 環境的啟用和刪除
  • Conda 中常用命令的整理

那麼我們下篇文章將進行實際操作環境的實踐吧!

一個象徵性的數字眼鏡蛇代表 Conda 環境,周圍環繞著帶有雲和系統圖標的圍欄網格