PEP
別名: Python Enhancement Proposal / PEP 8 / PEP 668
Python の仕様変更や指針を提案・記録する文書。
番号で識別され、採択された PEP が言語やツールの実際の挙動を決める。
エラーメッセージや公式ドキュメントが根拠として PEP 番号を示すことが多い。
公開:
定義
PEP(Python Enhancement Proposal)は、Python への変更提案や設計方針をまとめた文書です。PEP 8 のように連番で識別され、その位置づけと手続き自体も PEP 1 で定義されています。
採択(Accepted / Final)された PEP は言語処理系やパッケージングツールの実際の挙動になるため、エラーメッセージや公式ドキュメントが根拠として PEP 番号だけを示すことがあります。
詳細
PEP には種類があります。
言語や標準ライブラリの仕様を変える Standards Track、開発プロセスを定める Process、指針を示す Informational の 3 つです。
状態も Draft / Accepted / Final / Rejected / Withdrawn / Superseded と移り変わるため、番号を見つけたら本文の冒頭にある Status を確認します。
トラブルシューティングで出会いやすいものには次があります。
PEP 8: コードスタイルの指針。
インデントや空白に関する lint の指摘はここが出所ですPEP 517/PEP 518: ビルドバックエンドとpyproject.tomlの仕様。
ソース配布物のビルド失敗はこの仕組みの上で起きますPEP 668: OS 管理の Python 環境を「externally managed」と印付けし、pip installを既定で拒否する仕組み
よくある誤解
- PEP は公式ドキュメントの別名: PEP は提案と決定の記録で、使い方を説明するのは公式ドキュメントの役割です。
- 番号が新しいほど有効: 却下された PEP や別の PEP に置き換えられた PEP も番号を持ったまま残ります。
Statusを見ないと有効かどうか分かりません。
関連
PEP 668 が実際に効いている状態は externally-managed-environment と pip install が externally-managed-environment で止まる、それを避ける隔離環境は venv を参照してください。