Python パッケージにバージョンを埋め込む標準的な方法は? 質問する

Python パッケージにバージョンを埋め込む標準的な方法は? 質問する

次のように、バージョン文字列を Python パッケージに関連付ける標準的な方法はありますか?

import foo
print(foo.version)

マイナー/メジャー文字列はすでに で指定されているので、追加のハードコーディングなしでそのデータを取得する方法があると思います。私が見つけた代替の解決策は、を に含めて、によって生成するsetup.pyというものでした。import __version__foo/__init__.py__version__.pysetup.py

ベストアンサー1

質問への直接的な回答ではありませんが、__version__ではなく という名前を付けることを検討する必要がありますversion

これはほぼ準標準です。標準ライブラリの多くのモジュールは を使用し__version__、これは以下でも使用されています。たくさんサードパーティのモジュールなので、準標準です。

通常は__version__文字列ですが、浮動小数点数やタプルの場合もあります。

S.Lott さんがおっしゃったように (ありがとうございます!)、ペップ8はっきりとこう述べています。

モジュールレベルのダンダー名

__all__、、など__author__のモジュール レベルの「ダンダー」(先頭に 2 つのアンダースコア、末尾に 2 つのアンダースコアがある名前) は、__version__モジュールのドキュメント文字列の後、from インポートを除くすべてのインポート ステートメントの前に配置する必要があります__future__

また、バージョン番号が以下の形式に準拠していることを確認する必要があります。ペップ440ペップ386この規格の以前のバージョン)。

おすすめ記事