1. ホーム
  2. python

[解決済み] 実行時にPythonモジュールのバージョンをチェックする

2022-06-18 04:07:27

質問

多くのサードパーティ製Pythonモジュールは、モジュールのバージョン情報を保持する属性を持っています(通常、次のようなものです)。 module.VERSION または module.__version__ )がありますが、そうでないものもあります。

このようなモジュールの具体例として、libxsltとlibxml2があります。

これらのモジュールの正しいバージョンが実行時に使用されていることを確認する必要があります。これを行う方法はありますか?

潜在的な解決策は、実行時にソースを読み込み、それをハッシュ化し、それから既知のバージョンのハッシュと比較することですが、それは厄介です。

もっと良い解決策はないのでしょうか?

どのように解決するのですか?

私ならハッシュ化には手を出しません。 使用されている libxslt のバージョンには、あなたの使用に影響を与えない何らかのパッチが含まれている可能性があります。

代替案として、実行時にチェックしないことを提案したいと思います (それが難しい要件であるかどうかはわかりません)。 外部依存 (サードパーティのライブラリ) を持つ私が書いた python のものについては、適切なバージョンのモジュールがインストールされているかどうかを確認するために、ユーザーが python インストールをチェックできるスクリプトを作成します。

定義された「バージョン」属性を持たないモジュールについては、それが含むインターフェイス (クラスとメソッド) を検査し、それらが期待するインターフェイスと一致するかどうかを確認することができます。 そして、実際に作業しているコードでは、サードパーティモジュールが期待するインターフェイスを持っていると仮定してください。