できない.dev

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 を参照してください。

この記事は役立ちましたか?