の現状が私にはよく分かりませんsetup.cfg
。私は自分の解決策を探しています。その他の質問PEP 508 環境マーカーについて調べましたが、完全に混乱してしまいました。
私にとっては、setup.cfg
は よりも改善されているように思えますsetup.py
。なぜなら、 は宣言型であり、パッケージをインストール可能にするために任意のコードを実行する必要がなく、悪意のある Python パッケージを配布することが難しくなり、Python パッケージ レジストリの実行が容易になるなどの利点があるからです。
それで、setuptools
ドキュメントはこちらsetuptools は、かなり最近のバージョンで setup.cfg をサポートするようになったと書かれています30.3.0 (8 Dec 2016)
。これは新しい機能ですよね?
そうでもない。distutils
setup.cfg
長い間支持されてきた少なくとも 2.6 以降です。すでに 9 年が経ちました。
同時に、wheel
ドキュメントはこちらは非推奨になったと言われておりsetup.cfg
、パラメータ経由で環境マーカーを提供するのが望ましいですextras_require
。また、setuptools についても言及されているので、非推奨になる可能性のある distutils フレーバーに関するものではありませんsetup.cfg
。
では、実際何が起こっているのでしょうか?廃止された方法なsetup.cfg
のでしょうか、それとも最新の方法なのでしょうか?
ベストアンサー1
最近の動向についていくつか補足しておきます。
ペップ518は、2016 年に最初に起草され、2020 年 4 月に最終版とされました。私はこれを、pyproject.toml
の代わりにを使用するよう勧めるものと解釈していますsetup.cfg
。PEP から引用します。
セットアップツールで一般的なフォーマットとして使用されるファイルには2つの問題があります
setup.cfg
。1つは、.ini
設定パーサー上記の説明を参照してください。もう 1 つは、そのファイルのスキーマが厳密に定義されたことがないため、setuptools のインストールを混乱させることなく、どの形式を今後使用しても安全であるかが不明であることです。
からブラックのドキュメント:
ペップ518
pyproject.toml
Pythonプロジェクトのビルドシステム要件を保存するための構成ファイルとして定義されています。詩またはフリットsetup.py
およびファイルの必要性を完全に置き換えることができますsetup.cfg
。
ピップ 19.0(2019-01-22) 実装ペップ517プロジェクトが を介してビルド バックエンドを指定できるようにしますpyproject.toml
。
ペップ621これは、pyproject.toml にプロジェクト メタデータを保存するための標準的な方法を指定しており、2021 年 3 月 3 日に最終版としてマークされました。
setuptools
「」というタイトルの未解決の問題があります。setup.cfg
最終的には自動変換により廃止されるpyproject.toml
「」。
免責事項:私は感じる
完全に
私自身、Python のパッケージングのジャングルで迷子になりました。
推奨される追加資料: setup.py を直接呼び出さない理由ポール・ガンスル著。