[解決済み] 実行時にPythonモジュールのバージョンをチェックする
質問
多くのサードパーティ製Pythonモジュールは、モジュールのバージョン情報を保持する属性を持っています(通常、次のようなものです)。
module.VERSION
または
module.__version__
)がありますが、そうでないものもあります。
このようなモジュールの具体例として、libxsltとlibxml2があります。
これらのモジュールの正しいバージョンが実行時に使用されていることを確認する必要があります。これを行う方法はありますか?
潜在的な解決策は、実行時にソースを読み込み、それをハッシュ化し、それから既知のバージョンのハッシュと比較することですが、それは厄介です。
もっと良い解決策はないのでしょうか?
どのように解決するのですか?
私ならハッシュ化には手を出しません。 使用されている libxslt のバージョンには、あなたの使用に影響を与えない何らかのパッチが含まれている可能性があります。
代替案として、実行時にチェックしないことを提案したいと思います (それが難しい要件であるかどうかはわかりません)。 外部依存 (サードパーティのライブラリ) を持つ私が書いた python のものについては、適切なバージョンのモジュールがインストールされているかどうかを確認するために、ユーザーが python インストールをチェックできるスクリプトを作成します。
定義された「バージョン」属性を持たないモジュールについては、それが含むインターフェイス (クラスとメソッド) を検査し、それらが期待するインターフェイスと一致するかどうかを確認することができます。 そして、実際に作業しているコードでは、サードパーティモジュールが期待するインターフェイスを持っていると仮定してください。
関連
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] スクリプトを実行しているPythonのバージョンを確認するにはどうしたらいいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] Pythonでバージョン番号を比較する方法は?