name: python-engineering description: Python 工程化開發規範:虛擬環境隔離、標準專案結構、依賴鎖定、pytest 單元測試、ruff 程式碼檢查與打包釋出流程。在建立 Python 專案、管理環境與依賴、編寫執行測試、構建釋出程式碼時使用。 when_to_use: 需要建立規範的 Python 專案、管理虛擬環境與依賴、編寫和執行單元測試、打包釋出程式碼時應用
面向 Windows PowerShell 環境(用分號串聯命令,不用 &&)。目標是讓每個 Python 專案環境隔離、結構標準、可測試、可釋出。
python -m venv .venv;啟用(PowerShell):.venv\Scripts\Activate.ps1;之後一律用 python/pip(指向環境內直譯器)。python -m pytest、python -m ruff 等 -m 模組方式執行,效果等價。.venv/ 必須寫入 .gitignore。python --version。Windows 下控制台輸出編碼問題時設定 $env:PYTHONIOENCODING="utf-8",檔案一律以 UTF-8 讀寫。採用 src 佈局:
專案名/
├── .venv/
├── src/
│ └── 包名/
│ └── __init__.py
├── tests/
│ └── test_*.py
├── pyproject.toml
├── .gitignore
└── README.md
src/包名/,測試放 tests/,測試檔案以 test_ 開頭。pyproject.toml 作為唯一專案後設資料與工具配置入口:7w4.net小蔥技能站收錄全網優質技能,值得收藏。
[project]
name = "包名"
version = "0.1.0"
description = "一句話描述"
requires-python = ">=3.9"
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
[tool.ruff]
line-length = 100
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
.gitignore 至少包含:.venv/、__pycache__/、*.pyc、dist/、build/、*.egg-info/。python -m pip freeze > requirements.lock.txt。pyproject.toml 的 dependencies,開發工具(pytest、ruff)放 requirements-dev.txt。python -m pip install -r requirements.lock.txt。pip freeze 實際輸出為準。tests/,函式命名 test_行為描述。python -m pytest -q;只跑單檔案:python -m pytest tests/test_xxx.py -q。skip 繞過。python -m ruff check . --fix,再 python -m ruff format .。line-length = 100 為準。主.次.修訂,寫在 pyproject.toml 的 [project].version,釋出前更新。dist/、build/、*.egg-info/。python -m pip install build,然後 python -m build,產物在 dist/。新專案從零開始按此順序:建立 venv → 建目錄與 pyproject.toml → 寫原始碼 → ruff 檢查格式化 → 寫測試並跑通 → 匯出 requirements.lock.txt。交付結論只以測試全通過和實際執行為準。
質量中上等,內容覆蓋全面且實用。對於需要規範化開發流程的 Python 開發者來說很有參考價值。優點是結構清晰、命令具體、配置示例完整;不足是純理論指導缺少實踐示例,初次使用時需要花費較多時間理解消化。普通使用者如果只是偶爾寫 Python 指令碼,可能不會用到這麼全面的規範。