問題タブ [python-importlib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python3: プログラムで別のファイルから関数を追加することにより、大規模なクラスを区画化
注: この質問は、 Adding functions from other files to a Python classの修正/拡張です。これは部分的にimp
非推奨になっているためです。
コンテキスト: 大きなクラス ファイル (+5000 行) があるとしますMainClass.py
。コードをより適切に区分するために、関連する関数を別のサブファイルに移動したいと思います。たとえば、目的のディレクトリ構造は次のようになります。
これらの関数をロードして、MainClass
現在私は持っています:
しかし、これはImportError
,を吐き'main_class_functions_1' is not a package
ます。
(リンクされた投稿からコードをコピーして貼り付け、それが機能するかどうかを確認しようとしましたが、機能しませんでした)。
python - Python で `import xyz as z` を動的にインポートする方法
やること
動的に、私は次のことができます
しかし、次のことを動的に行うにはどうすればよいですか
問題のコンテキスト:
デフォルトのバージョン(0.9)ではなく、別のディレクトリにインストールされたモジュール(私の場合は「pika」)の別のバージョン(0.10)をインポートする必要があります。
ご覧のとおり、通常のインポートは正常に機能しています。ただし、動的にインポートする場合、場所を基準にしてインポートすると問題が発生します。importlib.import_module のドキュメントに従って、以下は機能するはずですが、機能しません。
また、相対パスの下にモジュール pika がないため失敗するはずの相対パスから 'pika' をインポートしようとすると、まだデフォルト モジュールからインポートされています。
私が見逃しているのは何ですか?私は主に次のことを動的に行いたいと考えています。