1. ホーム
  2. パイソン

[解決済み】Pythonパッケージにバージョンを埋め込む標準的な方法?

2022-03-27 04:18:07

質問

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

import foo
print(foo.version)

マイナー/メジャー文字列が setup.py はすでにある。私が見つけた別の解決策は import __version__ の中に foo/__init__.py を作成し、さらに __version__.py によって生成されます。 setup.py .

解決方法は?

ご質問に対する直接の回答ではありませんが、ネーミングを検討する必要があります __version__ ではなく version .

これは、ほぼ準標準と言えるでしょう。標準ライブラリの多くのモジュールでは __version__ で使用され、これは たくさん サードパーティモジュールの準標準となっています。

通常は __version__ は文字列ですが、floatやtupleの場合もあります。

編集:S.Lottさんのおっしゃるとおり(ありがとうございます!)。 PEP 8 には、明確に書かれています。

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

モジュール・レベルのquot;dunders" (つまり、先頭と末尾に2つずつ名前があるもの)は、quot;dunders" と呼ばれます。 のようなアンダースコアを使用します。 __all__ , __author__ , __version__ などがあります。 は、モジュールのdocstringの後、importの前に置く必要があります。 ステートメントを使用します。 __future__ をインポートします。

また、バージョン番号は、以下の書式に準拠していることを確認してください。 PEP 440 ( PEP 386 は、この規格の前バージョン)。