Python 函式庫與虛擬環境:站在巨人的肩膀上 (第 7 章)

站主自己的課程,請大家支持
揭秘站長的架站心法:如何利用 Hugo × AI 打造高質感個人品牌網站? 揭秘站長的架站心法:如何利用 Hugo × AI 打造高質感個人品牌網站?
  • Post by
  • Dec 21, 2023
post-thumb

Python 之所以能成為當今最熱門的程式語言,很大程度上歸功於它龐大且活躍的生態系。從網頁開發、數據分析到人工智慧,幾乎所有領域都有現成的函式庫 (Libraries) 可供使用。

本章將帶您探索 Python 的軍火庫——從內建的強大模組到第三方套件的管理,以及專業開發者必備的虛擬環境技能。

1. 內建標準函式庫 (Standard Library) 實戰

Python 宣稱 “Batteries Included”,意味著安裝好 Python 後,你就已經擁有處理各種任務的工具。以下介紹幾個最常用且強大的模組。

1.1 ossys:與作業系統對話

這兩個模組是你與電腦檔案系統及環境變數互動的橋樑。

import os
import sys

# os 模組:檔案與目錄操作
current_dir = os.getcwd()  # 取得當前目錄
file_path = os.path.join(current_dir, "data", "log.txt")  # 跨平台路徑拼接 (重要!)

print(f"目前工作目錄: {current_dir}")
print(f"目標檔案路徑: {file_path}")

# 檢查檔案是否存在
if os.path.exists(file_path):
    print("檔案存在")
else:
    print("檔案不存在")

# sys 模組:系統參數
print(f"Python 版本: {sys.version}")
print(f"命令行參數: {sys.argv}")  # 接收外部傳入的參數

1.2 datetime:時間處理大師

處理時間是程式設計中最容易踩雷的地方 (時區、格式轉換)。datetime 模組提供了標準解決方案。

from datetime import datetime, timedelta

# 獲取現在時間
now = datetime.now()
print(f"現在時間: {now}")

# 格式化輸出 (String Format Time)
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"格式化後: {formatted}")

# 時間運算 (往回推 7 天)
last_week = now - timedelta(days=7)
print(f"上週此時: {last_week}")

# 解析字串為時間物件 (Parse Time)
date_str = "2024-01-01"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
print(f"解析後的年份: {date_obj.year}")

1.3 json:資料交換通用語

JSON (JavaScript Object Notation) 是現代 API 資料交換的標準格式。

import json

# Python 字典 -> JSON 字串 (序列化 Dumping)
data = {
    "name": "Alice",
    "skills": ["Python", "Git"],
    "active": True
}
json_str = json.dumps(data, indent=4)  # indent 用於美化輸出
print(json_str)

# JSON 字串 -> Python 字典 (反序列化 Loading)
parsed_data = json.loads(json_str)
print(f"姓名: {parsed_data['name']}")

2. 第三方套件與 PyPI

當標準函式庫無法滿足需求時,我們可以到 PyPI (Python Package Index) 尋找第三方套件。例如:requests (HTTP 請求)、pandas (數據分析)、django (網頁框架)。

我們使用 pip (Python Package Installer) 來管理這些套件。

常用 pip 指令

# 安裝套件
pip install requests

# 安裝特定版本
pip install requests==2.31.0

# 升級套件
pip install --upgrade requests

# 移除套件
pip uninstall requests

# 列出已安裝套件
pip list

3. 虛擬環境 (Virtual Environments):專案隔離的藝術

這是新手最容易忽略,但最重要的開發習慣。

為什麼需要虛擬環境? 假設專案 A 需要 Django 2.0,而專案 B 需要 Django 4.0。如果你把套件都安裝在全域環境 (Global Environment),版本衝突會讓其中一個專案無法運作。

虛擬環境為每個專案建立獨立的空間,互不干擾。

3.1 使用 venv 建立環境

Python 3.3+ 內建了 venv 模組。

# 1. 建立虛擬環境 (資料夾名稱通常叫 venv 或 .venv)
python3 -m venv venv

# 2. 啟用環境 (Windows)
venv\Scripts\activate

# 2. 啟用環境 (macOS/Linux)
source venv/bin/activate

啟用後,你的終端機提示字元前會出現 (venv),代表現在安裝的任何套件都只會存在於這個專案中。

3.2 管理依賴清單

在協作開發時,我們透過 requirements.txt 告訴隊友這個專案需要哪些套件。

# 導出當前環境的所有套件清單
pip freeze > requirements.txt

# (隊友使用) 根據清單一次安裝所有套件
pip install -r requirements.txt

4. 總結

掌握函式庫與環境管理,是從「寫程式腳本」進階到「開發專案」的分水嶺。

本章重點回顧:

  • os/sys: 處理檔案路徑與系統參數。
  • datetime: 處理時間計算與格式化。
  • json: 處理資料序列化與反序列化。
  • pip: 安裝與管理 PyPI 上的第三方套件。
  • Virtual Environment: 務必為每個專案建立獨立環境,避免版本地獄 (Dependency Hell)。

下一章,我們將結合 os 模組與檔案讀寫技巧,深入探討 檔案輸入與輸出 (File I/O),學習如何高效地處理大量資料!


延伸閱讀

LATEST POST
TAG