次のように、バージョン文字列を Python パッケージに関連付ける標準的な方法はありますか?
import foo
print(foo.version)
マイナー/メジャー文字列はすでに で指定されているので、追加のハードコーディングなしでそのデータを取得する方法があると思います。私が見つけた代替の解決策は、を に含めて、によって生成するsetup.py
というものでした。import __version__
foo/__init__.py
__version__.py
setup.py
ベストアンサー1
質問への直接的な回答ではありませんが、__version__
ではなく という名前を付けることを検討する必要がありますversion
。
これはほぼ準標準です。標準ライブラリの多くのモジュールは を使用し__version__
、これは以下でも使用されています。たくさんサードパーティのモジュールなので、準標準です。
通常は__version__
文字列ですが、浮動小数点数やタプルの場合もあります。
S.Lott さんがおっしゃったように (ありがとうございます!)、ペップ8はっきりとこう述べています。
モジュールレベルのダンダー名
__all__
、、など__author__
のモジュール レベルの「ダンダー」(先頭に 2 つのアンダースコア、末尾に 2 つのアンダースコアがある名前) は、__version__
モジュールのドキュメント文字列の後、from インポートを除くすべてのインポート ステートメントの前に配置する必要があります__future__
。
また、バージョン番号が以下の形式に準拠していることを確認する必要があります。ペップ440(ペップ386この規格の以前のバージョン)。