指定されたパスからモジュールを動的にインポートする
Python では、通常、モジュールのインポートは名前を指定することで実現されます。ただし、ファイルシステム内の場所に関係なく、特定のファイルからモジュールをインポートする必要がある場合はどうすればよいでしょうか?
解決策:
に基づいてモジュールを動的にインポートするにはどうすればよいですか?そのフルパスを使用すると、次のいずれかの手法を利用できます:
Python 3.5 (推奨):
import importlib.util import sys spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py") foo = importlib.util.module_from_spec(spec) sys.modules["module.name"] = foo spec.loader.exec_module(foo) foo.MyClass() # Access a class within the module
Python 3.3 および 3.4:
from importlib.machinery import SourceFileLoader foo = SourceFileLoader("module.name", "/path/to/file.py").load_module() foo.MyClass() # Access a class within the module
Python 2:
import imp foo = imp.load_source('module.name', '/path/to/file.py') foo.MyClass() # Access a class within the module
これらのメソッドは、コンパイルされた Python ファイルをインポートするための便利なオプションを提供していることに注意してください。 DLL も同様です。
追加の注意:
このアプローチは、動的に生成されたモジュール、またはどのモジュールにもインストールされていないモジュールを操作する場合に特に便利であることに注意してください。標準の Python パス。
以上が特定のファイル パスから Python モジュールを動的にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。