# Python 新手指南:00-B 開發環境設定 **作者:** Tsung-Min Pai **單位:** NTUEE --- ## 大綱 ### 1 pip 套件管理器 - pip 的安裝與基本使用 - 套件安裝與管理 - requirements.txt 的使用 ### 2 Miniconda 環境管理 - Miniconda 安裝與設定 - conda 環境建立與管理 - conda vs pip 的差異 ### 3 Visual Studio Code - VSCode 安裝與設定 - Python 擴充套件安裝 - 除錯與開發技巧 ### 4 Google Colab - Colab 基本介紹 - 線上程式碼執行 - 檔案上傳與下載 --- ## pip 套件管理器 **什麼是 pip?** - Python 的標準套件管理工具 - 用於安裝、升級和移除 Python 套件 - 從 Python Package Index (PyPI) 下載套件 **檢查 pip 是否已安裝:** ```bash # 檢查 pip 版本 pip --version # 如果沒有安裝 pip (Windows) python -m ensurepip --upgrade # 升級 pip 到最新版本 python -m pip install --upgrade pip ``` --- ## pip 基本指令 **安裝套件:** ```bash # 安裝最新版本 pip install numpy # 安裝特定版本 pip install numpy==1.21.0 # 安裝版本範圍 pip install "numpy>=1.20.0,<1.22.0" # 從 requirements.txt 安裝 pip install -r requirements.txt # 安裝開發版本 pip install git+https://github.com/user/repo.git ``` **管理套件:** ```bash # 列出已安裝套件 pip list # 顯示套件資訊 pip show numpy # 升級套件 pip install --upgrade numpy # 解除安裝套件 pip uninstall numpy # 檢查過期套件 pip list --outdated ``` **產生 requirements.txt:** ```bash # 產生當前環境的所有套件清單 pip freeze > requirements.txt pip list --format=freeze > requirements.txt # 只產生專案直接相依的套件 pip-tools 或手動編輯 ``` --- ## requirements.txt 最佳實務 **requirements.txt 範例:** ``` # 資料處理 numpy==1.21.0 pandas==1.3.0 # 網路請求 requests==2.25.1 # 資料視覺化 matplotlib==3.4.2 seaborn==0.11.2 # 機器學習 scikit-learn==0.24.2 # 開發工具 pytest==6.2.4 black==21.6b0 ``` **使用 requirements.txt:** ```bash # 安裝所有相依套件 pip install -r requirements.txt # 在新環境中重建相同環境 pip install -r requirements.txt --no-deps # 不安裝相依性 ``` --- ## Miniconda 環境管理 **什麼是 Miniconda?** - 輕量級的 Python 發行版 - 包含 conda 套件管理器 - 支援建立獨立的 Python 環境 - 比 Anaconda 更小巧,可按需安裝套件 **Miniconda 安裝步驟:** **Windows:** ```bash # 1. 下載 Miniconda installer # 前往 https://docs.conda.io/en/latest/miniconda.html # 2. 執行 installer,建議選項: # - Add Miniconda3 to PATH (勾選) # - Register Miniconda3 as default Python (勾選) # 3. 驗證安裝 conda --version ``` **macOS/Linux:** ```bash # 1. 下載安裝腳本 curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh # 2. 執行安裝 bash ~/Miniconda3-latest-MacOSX-arm64.sh # 3. 重新載入 shell source ~/.bashrc # 4. 驗證安裝 conda --version ``` --- ## conda 環境管理 **建立和管理環境:** ```bash # 建立新環境 conda create --name myproject python=3.9 # 建立環境並安裝套件 conda create --name dataproject python=3.9 numpy pandas # 啟動環境 conda activate myproject # 停用環境 conda deactivate # 列出所有環境 conda env list # 刪除環境 conda remove --name myproject --all ``` **在環境中管理套件:** ```bash # 啟動環境後安裝套件 conda activate myproject conda install numpy pandas matplotlib # 從 conda-forge 安裝 conda install -c conda-forge scikit-learn # 混合使用 conda 和 pip conda install numpy # 優先使用 conda pip install some-package # 如果 conda 沒有則使用 pip # 匯出環境設定 conda env export > environment.yml # 從設定檔建立環境 conda env create -f environment.yml ``` --- ## environment.yml 範例 ```yaml name: dataproject channels: - conda-forge - defaults dependencies: - python=3.9 - numpy=1.21.0 - pandas=1.3.0 - matplotlib=3.4.2 - scikit-learn=0.24.2 - pip - pip: - requests==2.25.1 - seaborn==0.11.2 ``` --- ## conda vs pip 比較 | 特性 | conda | pip | | -------------- | -------------------------------- | --------------- | | 套件來源 | Anaconda repository, conda-forge | PyPI | | 相依性處理 | 更好的相依性解析 | 基本相依性處理 | | 非 Python 套件 | 支援 (如 C/C++ 函式庫) | 僅 Python 套件 | | 環境管理 | 內建環境管理 | 需要 virtualenv | | 安裝速度 | 較慢但更穩定 | 較快 | | 套件數量 | 較少但品質高 | 最多最全面 | **建議使用策略:** ```bash # 1. 優先使用 conda 安裝主要套件 conda install numpy pandas matplotlib # 2. 使用 pip 安裝 conda 沒有的套件 pip install specific-package # 3. 保持環境清潔 conda clean --all # 清理暫存 ``` --- ## Visual Studio Code 設定 **VSCode 安裝:** 1. 前往 https://code.visualstudio.com/ 2. 下載對應作業系統的安裝檔 3. 執行安裝程式 **必裝 Python 擴充套件:** ```bash # 在 VSCode 中按 Ctrl+Shift+X 開啟擴充套件面板,搜尋安裝: 1. Python (Microsoft) - 基本 Python 支援 2. Pylance - 進階語言伺服器 3. Python Debugger - 除錯功能 4. autoDocstring - 自動產生文件字串 5. Black Formatter - 程式碼格式化 6. isort - 匯入語句排序 ``` **VSCode Python 設定:** **settings.json 設定:** ```json { "python.defaultInterpreterPath": "python", "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.formatting.provider": "black", "python.formatting.blackArgs": ["--line-length", "88"], "python.sortImports.args": ["--profile", "black"], "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.organizeImports": true }, "files.autoSave": "afterDelay", "files.autoSaveDelay": 1000 } ``` --- ## VSCode Python 開發技巧 **選擇 Python 直譯器:** ```bash # 方法 1:使用指令面板 Ctrl+Shift+P → "Python: Select Interpreter" # 方法 2:點擊狀態列的 Python 版本 # 狀態列右下角會顯示當前 Python 版本 # 方法 3:workspace 設定 # 在專案根目錄建立 .vscode/settings.json { "python.pythonPath": "/path/to/your/python" } ``` **除錯設定:** **.vscode/launch.json 範例:** ```json { "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true }, { "name": "Python: Django", "type": "python", "request": "launch", "program": "${workspaceFolder}/manage.py", "args": ["runserver"], "django": true } ] } ``` **除錯快捷鍵:** ```bash F9 # 設定/移除中斷點 F5 # 開始除錯 F10 # 逐行執行 (Step Over) F11 # 進入函式 (Step Into) Shift+F11 # 跳出函式 (Step Out) Ctrl+F5 # 執行不除錯 ``` --- ## VSCode 實用快捷鍵 ```bash # 檔案操作 Ctrl+N # 新檔案 Ctrl+O # 開啟檔案 Ctrl+S # 儲存 Ctrl+Shift+S # 另存新檔 # 編輯操作 Ctrl+/ # 註解/取消註解 Ctrl+Shift+K # 刪除整行 Alt+Up/Down # 移動行 Shift+Alt+Up/Down # 複製行 # 搜尋與取代 Ctrl+F # 搜尋 Ctrl+H # 取代 Ctrl+Shift+F # 全域搜尋 # 終端機 Ctrl+` # 開啟/關閉終端機 Ctrl+Shift+` # 新增終端機 ``` --- ## Google Colab 介紹 **什麼是 Google Colab?** - Google 提供的免費 Jupyter 筆記本環境 - 預裝常用 Python 套件 - 提供免費 GPU/TPU 運算資源 - 支援即時協作 **存取 Google Colab:** ```bash # 1. 前往 https://colab.research.google.com/ # 2. 使用 Google 帳號登入 # 3. 點擊 "新增筆記本" 開始使用 ``` **Colab 基本操作:** ```python # 在 Colab 中執行 Python 程式碼 print("Hello, Google Colab!") # 安裝套件 !pip install package_name # 檢查 GPU 可用性 import torch print(torch.cuda.is_available()) # 檢查系統資訊 !nvidia-smi # GPU 資訊 !df -h # 磁碟空間 !free -h # 記憶體使用量 ``` --- ## Colab 檔案操作 **上傳檔案:** ```python from google.colab import files # 上傳檔案 uploaded = files.upload() # 列出上傳的檔案 import os print(os.listdir('.')) ``` **下載檔案:** ```python from google.colab import files # 建立檔案 with open('example.txt', 'w') as f: f.write('Hello, World!') # 下載檔案 files.download('example.txt') ``` **Google Drive 整合:** ```python from google.colab import drive # 掛載 Google Drive drive.mount('/content/drive') # 存取 Drive 中的檔案 import os os.chdir('/content/drive/MyDrive') print(os.listdir('.')) ``` --- ## Colab 進階功能 **使用 GPU/TPU:** ```python # 1. 前往 "執行階段" > "變更執行階段類型" # 2. 選擇 "GPU" 或 "TPU" # 3. 點擊 "儲存" # 驗證 GPU import tensorflow as tf print("GPU 可用:", tf.config.list_physical_devices('GPU')) # 驗證 TPU try: tpu = tf.distribute.cluster_resolver.TPUClusterResolver() print('TPU 可用:', tpu.cluster_spec().as_dict()['worker']) except ValueError: print('TPU 不可用') ``` **Colab 魔術指令:** ```python # 顯示所有魔術指令 %lsmagic # 測量執行時間 %time print("Hello") %%time # 整個儲存格的執行時間 # 執行 shell 指令 !ls -la !pwd # 顯示變數資訊 %whos # 載入外部 Python 檔案 %load filename.py ``` --- ## 開發環境選擇指南 **本地開發 (VSCode + conda):** ✅ 適合正式專案開發 ✅ 完整的除錯功能 ✅ 版本控制整合 ✅ 自訂開發環境 ❌ 需要安裝設定時間 **線上開發 (Google Colab):** ✅ 免費 GPU/TPU 資源 ✅ 無需安裝設定 ✅ 適合機器學習實驗 ✅ 即時協作功能 ❌ 工作階段會過期 ❌ 檔案管理較不便 **建議使用策略:** - **學習階段**:使用 Colab 快速上手 - **小型實驗**:Colab 進行概念驗證 - **正式開發**:本地環境 + VSCode - **機器學習**:Colab 訓練 + 本地開發 --- ## 環境設定檢查清單 **基本環境:** ```bash □ Python 3.8+ 安裝完成 □ pip 可正常使用 □ 能建立虛擬環境 □ VSCode 安裝並設定完成 □ Python 擴充套件正常運作 ``` **進階環境:** ```bash □ Miniconda 安裝完成 □ conda 環境管理正常 □ Git 安裝並設定 □ Google Colab 帳號可用 □ 常用套件安裝測試 ``` **驗證安裝腳本:** ```python #!/usr/bin/env python3 """ 開發環境驗證腳本 """ def check_python(): import sys print(f"Python 版本: {sys.version}") return sys.version_info >= (3, 8) def check_packages(): required_packages = ['numpy', 'pandas', 'matplotlib'] installed = [] missing = [] for package in required_packages: try: __import__(package) installed.append(package) except ImportError: missing.append(package) print(f"已安裝套件: {installed}") if missing: print(f"缺少套件: {missing}") return len(missing) == 0 def main(): print("=== Python 開發環境檢查 ===") # 檢查 Python 版本 if check_python(): print("✅ Python 版本符合要求") else: print("❌ Python 版本過舊,請升級至 3.8+") # 檢查套件 if check_packages(): print("✅ 必要套件已安裝") else: print("❌ 請安裝缺少的套件") print("\n環境檢查完成!") if __name__ == "__main__": main() ``` --- ## 總結與 Q&A 我們已經涵蓋了 Python 開發環境的完整設定! - **pip**:Python 套件管理的基礎工具 - **Miniconda**:環境管理和相依性解決方案 - **VSCode**:功能強大的程式碼編輯器 - **Google Colab**:雲端開發和機器學習平台 選擇適合自己的開發環境,開始你的 Python 學習之旅! 有任何問題嗎?