Skip to content

willismax/MediaSystem-Python-Course

Repository files navigation

MediaSystem-Python-Course

這是一個完整的 Python 程式設計課程資源庫,涵蓋從基礎到進階的各種主題,包括網頁爬蟲、API 開發、資料庫操作、電腦視覺、AI 應用等多元內容。每個主題都附有實作範例,適合配合課程學習使用。

📖 目錄

範例程式碼下載

  • 安裝Git Cli
  • 在終端機git clone專案
    git clone https://github.com/willismax/MediaSystem-Python-Course.git
    cd MediaSystem-Python-Course

🚀 快速開始 (推薦使用 uv)

使用 uv (推薦⭐)

uv 是新一代的 Python 套件管理工具,速度極快且使用簡單!

安裝 uv

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# 或使用安裝腳本 (Windows)
.\scripts\setup-uv.ps1

🎯 一鍵啟動腳本

本專案提供了方便的啟動腳本,讓您可以快速開始學習:

Windows (PowerShell)

# 啟動 Flask 應用
.\scripts\run-flask.ps1

# 啟動 Jupyter Notebook
.\scripts\run-jupyter.ps1

# 在特定目錄啟動 Jupyter
.\scripts\run-jupyter.ps1 -Path "11.AI"

Linux/macOS

# 給予執行權限(首次使用)
chmod +x scripts/*.sh

# 啟動 Flask 應用
./scripts/run-flask.sh

# 啟動 Jupyter Notebook
./scripts/run-jupyter.sh

# 在特定目錄啟動 Jupyter
./scripts/run-jupyter.sh "11.AI"

詳細的腳本使用說明請參考 scripts/README.md

使用 uv 執行專案

# 方法 1: 使用 uv run 直接執行 (自動管理環境)
cd 05.Flask/flask01
uv run app.py

# 方法 2: 執行 Jupyter Notebook
cd 03.Request
uv run --with jupyter jupyter notebook 網頁擷取_Request.ipynb

# 方法 3: 安裝特定套件後執行
uv run --with flask --with requests python app.py

為子專案建立虛擬環境 (可選)

# 進入特定專案目錄
cd 05.Flask

# 使用 uv 建立虛擬環境並安裝套件
uv venv
uv pip install -r requirements.txt

# 啟動虛擬環境
# Windows
.venv\Scripts\activate

# macOS/Linux
source .venv/bin/activate

# 執行應用
python app.py

uv 常用指令

# 安裝套件
uv pip install flask pandas requests

# 從 requirements.txt 安裝
uv pip install -r requirements.txt

# 列出已安裝套件
uv pip list

# 執行 Python 腳本 (自動處理依賴)
uv run script.py

# 執行 Python 互動式介面
uv run python

傳統方法 (3 選 1)

方法 1: 使用 Python 內建的虛擬機 venv

  • 官方說明
  • 建虛擬機 venv
    python -m venv venv
  • 啟動 VM
    # Windows
    .\venv\Scripts\activate
    
    # macOS/Linux
    source venv/bin/activate
  • 安裝相關套件
    pip install -r requirements.txt
  • 離開 VM
    deactivate

方法 2: 使用 pipenv 虛擬環境+套件管理

  • pipenv (需先 pip install pipenv,並在本機安裝對應的 Python 版本)

    pipenv --python 3.10
  • 建立好資料夾要 CD 切換路徑

    cd MediaSystem-Python-Course
  • 在 pipenv 安裝相依套件

    以 requirements.txt 裝:

    pipenv install -r requirements.txt

    以 Pipfile 裝:

    pipenv sync
  • 進入環境執行服務

    pipenv shell
    python app.py
    
    # 或未進入虛擬環境由本機執行
    pipenv run python app.py
  • 移除虛擬環境

    pipenv --rm

方法 3: 直接使用系統 Python (不推薦)

pip install -r requirements.txt
python app.py

相關專案摘要說明

01.Intro-Python

  • 課程使用到的ipynb檔,在Colab執行

02.Gradio

  • 可在Colab建立GUI,輔助課程使用

03.Request

  • 網頁擷取與 API 資料存取教學
  • 包含使用 Requests 函式庫進行網頁擷取
  • 介紹如何存取開放資料 (Open Data) API
  • 範例檔案包括:
    • 網頁擷取_Request.ipynb: 基礎網頁擷取
    • 擷取API資料.ipynb: API 資料存取
    • RequestsOpenData_HW.ipynb: 開放資料實作練習

04.Selenium

  • 需自行下載 webkit 等 Driver 測試,為進階爬蟲教學
  • 適用於需要執行 JavaScript 的動態網頁爬蟲

04.Playwright

  • 可錄製腳本抓 HTML,再自己客製化
  • 新一代的網頁自動化工具,支援多種瀏覽器

05.Flask

  • 從基本網站服務到建立基本API

06.LINE-Bot-on-Fly

  • 在 Fly.io 建立 LINE Bot ,服務以 Flask 框架實現,並包含 API 測試

  • config.py填入相關tocken

  • 服務包含:

    • LINE 訊息傳送 (需LINE Channel acess token、Channel secret、LINE user id)
    • LINE 文字與圖片訊息增加至 HackMD (需HackMD API、Imgure API)
    • LINE 文字訊息翻譯
    • LINE 文字訊息由 OpenAI 回應,並且記錄於 HhackMD (需OpenAI API)
  • 建立 Tasks API 測試:

    • Run in Postman
    • Get, Post, Put, Delete測試

07.Pytest-DEMO

  • 簡易的 pytest demo,寫好在終端機下pytest指令測試
  • 另外也裝pytest-cov套件的話,pytest --cov=./可以測試覆蓋率Coverage
    pytest --cov=./ 
    或
    pytest --cov-report=html
    

08.OpenCV-Mediapipe-DEMO

  • Mediapipe 簡易操作
  • 電腦視覺應用示範
  • 建議使用 pipenv 虛擬環境,Python 3.8 以上版本

09.Apps

  • 實用應用程式範例
  • 包含 QRCode 產生器等工具
  • QRCode.ipynb: 在 Colab 上製作 QR Code
    • 可製作純黑白 QR Code
    • 可加入背景圖片製作彩色或黑白 QR Code
    • 支援 GIF 動態背景

10.sql

  • SQLite 資料庫基礎教學
  • SQLite資料庫CRUD.ipynb: 涵蓋資料庫的建立、查詢、更新、刪除等基本操作
  • 適合初學者學習資料庫概念與 SQL 語法

11.AI

  • AI 與大型語言模型 (LLM) 相關教學
  • Gemini API 串接實作
  • 範例檔案:
    • 動手串接_LLM_API_入門教學(Gemini_).ipynb: Gemini API 入門教學
    • 在_Colab_終端機使用_Gemini_CLI.ipynb: 在 Colab 環境使用 Gemini CLI
    • gemini_cli_colab_tutorial.ipynb: Gemini CLI 完整教學
  • OpenAI API 應用範例

注意事項

🌟 為什麼推薦使用 uv?

  1. 極快的速度: 比 pip 快 10-100 倍
  2. 簡單易用: 單一指令即可安裝和執行
  3. 智能依賴管理: 自動解析和安裝依賴
  4. 跨平台一致性: Windows、macOS、Linux 使用體驗一致
  5. 無需預先安裝 Python: uv 可以自動下載所需的 Python 版本
  6. 零配置: 不需要額外的配置文件即可開始使用

速度對比範例

# 傳統方式 (約 30-60 秒)
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt

# uv 方式 (約 3-5 秒) ⚡
uv venv
uv pip install -r requirements.txt

📚 更多資源

💬 問題反饋

如有任何問題或建議,歡迎:

About

多媒體系統-Python程式設計課程

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •