作者:默思編輯部 發布:2026-05-20
寫過 Python 專案的人大概都遇過這個困擾:Poetry 用 poetry.lock,PDM 用 pdm.lock,pip-tools 產生 requirements.txt,uv 又有自己的格式——每種工具都能鎖定套件版本確保環境可重現,但格式互不相容,換工具或跨團隊協作時常常要重新來過。
PEP 751 定義的 pylock.toml 就是為了解決這個長期缺口而生:一個與 pyproject.toml 一樣採用 TOML 格式、由 Python 官方標準訂定的鎖定檔規格,記錄確切的套件版本、檔案雜湊值與安裝來源,確保安裝結果可重現,同時強化供應鏈安全性。
PEP 751 最初版本在 2025 年 4 月通過,2026 年 3 月做了進一步修訂,釐清了 archive、sdist、wheel 之間的檔名優先順序規則。截至 2026 年 5 月,已經有三套主流工具實作了 pylock.toml 產生器:
Poetry 目前仍在追蹤這個規格的採用進度,截至 2026 年 4 月尚未正式支援。
如果你的團隊同時有人用 uv、有人用 pip,過去換工具幾乎等於要重新產生一份完全不同格式的鎖定檔。當愈來愈多工具支援 pylock.toml 後,這種摩擦會逐漸消失——鎖定檔本身變成工具中立的格式,換工具不再需要重新協商版本。
對照最近愈來愈頻繁的 PyPI 供應鏈攻擊事件,標準化的鎖定檔格式也是強化安全性的重要一步:明確記錄雜湊值,代表安裝時可以驗證下載的套件內容跟預期的完全一致,降低被惡意置換套件內容的風險。
如果你目前用的是 uv 或 PDM,直接更新到支援 pylock.toml 的版本、開始產生鎖定檔即可,幾乎沒有轉換成本。如果團隊還在用 Poetry,暫時仍需要等待官方支援,但可以先留意這個規格的發展,為未來遷移預作準備。
對套件管理、環境重現這類基礎但容易被忽略的觀念還不熟悉的話,歡迎從默思 Mindset 的 Python 課程 打好地基。