[指令日記] 007 Python venv 虛擬環境教學:建立、啟用、套件管理與 Git 忽略設定

🧠 1. 為什麼要用 venv

Python 的虛擬環境(virtual environment)能夠讓每個專案使用獨立的套件版本,避免以下問題:

  • 🔁 避免全域安裝污染:不同專案可能需要不同版本的套件。
  • 🔥 減少版本衝突:A 專案要用 Flask==1.1.2,B 專案要用 Flask==2.0.0,如果都裝在同一個地方會打架。
  • 🚀 更容易部署:requirements.txt 可以幫你還原乾淨的環境。

🛠️ 2. 怎麼用 venv

以下是典型步驟,假設你已安裝 Python3:

🧰 建立虛擬環境

python3 -m venv venv

venv 是資料夾名稱,可自訂,如 env.venv

✅ 啟用虛擬環境

  • macOS/Linux
source venv/bin/activate
  • Windows(cmd)
venv\Scripts\activate
  • Windows(PowerShell)
venv\Scripts\Activate.ps1

啟動成功後,命令列會出現類似 (venv) 的提示符。

💾 安裝套件

pip install flask requests

📦 輸出依賴列表

pip freeze > requirements.txt

🛠️ 關閉虛擬環境

deactivate

🔍 3. venv 跟其他工具有什麼差異?

工具 說明
venv Python 內建、無需額外安裝,簡單穩定
virtualenv 支援 Python 2/3、更進階功能
pipenv 整合套件管理與虛擬環境,較重
poetry 現代化依賴管理,適合包開發與發佈
Conda 針對科學運算,可管理非 Python 套件

建議初學者或一般專案使用 venv 就足夠。


🗃️ 4. .git 如何維護虛擬環境?

不要將虛擬環境資料夾(例如 venv/)加入 Git!

✅ 加入 .gitignore

# Python virtual environment
venv/
.env/
*.pyc
__pycache__/

這樣只需將 requirements.txt 加入版本控制,其他人也能重建環境:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
飛飛
飛飛

林子婷 (飛飛/Phoebe 菲比) 七維思 / 執行長
技術專長:OSINT、滲透測試、網站開發、專業易懂教育訓練。
資安證照:OSCE3、OSED、OSWE、OSEP、OSCP、OSTH、OSWA、OSWP、OSCC、OSCC-SJD
書籍著作:著《資安這條路:領航新手的 Web Security指南》。
教學經驗:60+ 企業教學經驗、指導過上百位學員。
教學特色:新手友善、耐心指導、擅長圖解(流程圖、心智圖)引導學習。
社群經驗:目前經營全臺資安社群 CURA,曾任臺科資安社社長、逢甲黑客社社長。
社群交流:Line 社群《飛飛的資安大圈圈》,即時分享經驗、鼓勵交流。
社群分享:FB 粉專《資安這條路,飛飛來領路》,分享文章與圖卡整理。
個人網站:feifei.tw 分享資安技術文章。