Python虛擬環境
2024年9月18日大约 6 分鐘
本頁內容介紹「Python的虛擬環境」:
- 理解什麼是虛擬環境,以及為什麼在開發Python專案時需要使用虛擬環境。
- 學會如何使用
venv
創建、啟動、停用虛擬環境,並安裝專案的專屬套件。
什麼是Python的虛擬環境?
簡單來說,虛擬環境是一個隔離的Python運行環境。它可以讓每個專案有自己專屬的Python版本和套件,避免不同專案之間的依賴衝突。
- 問題背景:在開發過程中,不同專案可能需要不同版本的套件。假設專案A需要
requests
的版本1.0,而專案B需要2.0版本,這時候就會產生衝突。虛擬環境可以為每個專案建立獨立的環境來解決這個問題。 - 用途:
- 為每個專案提供乾淨且獨立的Python環境。
- 避免不同專案之間的套件依賴衝突。
- 有助於管理專案的依賴,尤其在跨不同機器或部署到伺服器上時非常實用。
常見的Python虛擬環境管理工具
venv
- 簡介:
venv
Python 3.3版開始內建,無需額外安裝。 - 用途: 適合創建簡單的虛擬環境,讓不同專案有各自獨立的套件。
- 優點: 內建於Python,無需額外安裝。使用簡單,適合初學者或不需要太複雜的環境管理。
- 缺點: 缺乏進階功能,例如管理多個Python版本等。
virtualenv
- 簡介: 比
venv
更早期的虛擬環境工具,功能與venv
相似,可在更舊的Python版本中使用。 - 用途: 用於建立虛擬環境。
- 優點: 支援更舊版本的Python,可管理多個Python版本,與
venv
兼容。 - 缺點: 相對於
venv
而言,需要安裝額外套件。
除了上述兩個之外,還有其他的,例如 uv
, pyenv
, pipenv
...,請自行上網查閱。
資料科學常用的虛擬環境管理工具
Anaconda
- 簡介: Anaconda 是一個開發與資料科學相關的完整平台,包含許多資料科學工具(如 NumPy、Pandas、Jupyter 等),並且內建環境管理工具
conda
。 - 用途: 適合需要進行資料科學、機器學習、數據分析的開發者,提供完整的工具與虛擬環境管理功能。
- 優點: 提供大量數據分析和科學計算工具;簡單易用的環境管理,適合新手和資料科學工作者。
- 缺點: 相對較大,安裝後會佔用較多磁碟空間。
Miniconda
- 簡介: Miniconda 是Anaconda的輕量版本,它只包含
conda
環境管理工具和Python,不包含其他預設的資料科學工具。 - 用途: 適合只需要
conda
來管理虛擬環境,並想自行安裝所需套件的用戶。 - 優點: 輕量、安裝快速,使用者可自行選擇需要的工具。
- 缺點: 與Anaconda相比,少了預安裝的資料科學工具。
Micromamba
- 簡介:
micromamba
是conda
的超輕量版本,專注於快速環境管理。與conda
相似,但體積小且運行速度快。 - 用途: 當需要快速創建和管理
conda
環境,但又不需要完整的Anaconda功能時,micromamba
是很好的選擇。 - 優點: 體積非常小,下載與運行速度快;與
conda
兼容,無需學習新的語法。 - 缺點: 功能不如完整的
conda
完整,主要集中於環境管理,不包含其他工具。
uv
- 簡介:
uv
是一個由 Rust 語言編寫的極快 Python 套件和專案管理器,由 Ruff 團隊(Astral)開發。它是一個多功能工具,可以取代pip
、pip-tools
、pipx
、poetry
、pyenv
、virtualenv
等多種工具。 - 用途: 提供完整的 Python 開發工具鏈,包括:Python 版本管理、虛擬環境創建、套件安裝與管理、專案管理、腳本執行、工具安裝等。
- 核心特點:
- 極速: 比
pip
快 10-100 倍 - 統一介面: 單一工具取代多種 Python 工具
- 全域快取: 高效的磁碟空間管理,避免重複下載和儲存
- 專案管理: 支援 lockfile、workspace、內建依賴解析器
- 極速: 比
- 優點:
- 安裝簡單,無需 Python 即可安裝(支援獨立安裝)
- 速度極快,大幅提升開發效率
- 功能完整,一個工具解決所有需求
- 與現有工具兼容(提供 pip 相容介面)
- 跨平台支援(Windows、macOS、Linux)
- 內建 Python 版本管理和安裝功能
- 缺點:
- 相對較新的工具,社群生態還在發展中
- 部分進階功能可能與傳統工具有差異
這些虛擬環境管理工具各有特點,適合不同的開發需求。對於初學者來說,venv
是一個簡單且有效的選擇;而對於進階開發者或資料科學家,使用Anaconda可以帶來更多的靈活性與強大的功能。你可以根據專案需求和個人習慣來選擇最適合的工具。
使用 venv
創建虛擬環境
步驟1:開啟終端機 按下 Windows 鍵,在搜尋框中輸入 cmd 或 Command Prompt。點擊應用程式來打開 Command Prompt(終端機)。或在其他作業系統開啟相關的終端機程式。
步驟2:使用命令建立工作目錄
常用指令
X:
—— 切換不同磁碟機(For Windows, C:, D:...)mkdir
—— 建立新資料夾(Make Directory)cd
—— 切換工作目錄(Change Directory)dir
—— 列出目錄內容(Directory)
範例:假設要在 D 碟的 JYW 目錄建立一個 "work" 的資料夾,可執行以下命令:
D: cd \JYW # \ 表示根目錄 mkdir work cd work # 切換到 work 目錄
步驟3:檢查是否已安裝Python 在命令行或終端輸入以下命令檢查Python版本,確認是否安裝Python:
python --version # 或 python -V
步驟4:建立虛擬環境 使用Python的內建模組
venv
創建一個虛擬環境。以下指令會在當前目錄下創建一個名為myenv
的虛擬環境:python -m venv myenv
步驟5:啟動虛擬環境
- Windows:
myenv\Scripts\activate
- macOS/Linux:
source myenv/bin/activate
啟動成功後,命令行會顯示
(myenv)
,表示你目前正在該虛擬環境中。- Windows:
步驟6:在虛擬環境中安裝套件 在虛擬環境中,你可以安裝專案所需的套件。例如安裝
requests
:pip install requests
步驟7:查看已安裝的套件 使用
pip list
查看當前虛擬環境中的套件:pip list
步驟8:停用虛擬環境 完成工作後,使用以下命令退出虛擬環境:
deactivate
練習 1
- 在自己的電腦上建立一個虛擬環境。
- 啟動該虛擬環境並安裝
requests
套件。 - 編寫並執行以下Python程式碼來測試
requests
是否正常運行:import requests response = requests.get("https://api.github.com") print(response.status_code)
- 停用虛擬環境。