1. ホーム
  2. python

[解決済み] setup.py (setuptools) で定義されているバージョンをパッケージに取り込むにはどうしたらいいですか?

2022-04-21 18:23:05

質問

で定義されたバージョンを取得するにはどうすればよいですか? setup.py を私のパッケージから取得します。 --version または他の目的)?

解決方法は?

既にインストールされているディストリビューションのバージョン文字列を問い合わせる

実行時にパッケージ内部からバージョンを取得するには (あなたの質問が実際に尋ねているように見えるもの)、次のようにすることができます。

import pkg_resources  # part of setuptools
version = pkg_resources.require("MyProject")[0].version

インストール時に使用するバージョン文字列を保存

もし、その逆をやりたいのなら (これは、ここの他の回答者もあなたが質問していると考えているようです)、 バージョン文字列を別のファイルに置いて、そのファイルの中身を setup.py .

パッケージの中にあるversion.pyに __version__ の行を追加し、setup.pyから execfile('mypackage/version.py') を設定するようにします。 __version__ をsetup.pyの名前空間に追加します。

インストール時のレースコンディションに関する警告

ところで、他の回答で提案されているように、setup.pyからパッケージをインポートしないでください:(すでにパッケージの依存関係がインストールされているので)あなたにとってはうまくいくように見えますが、あなたのパッケージの新しいユーザーにとっては大混乱になります。