フルパスを指定してモジュールを動的にインポートするにはどうすればいいですか? 質問する

フルパスを指定してモジュールを動的にインポートするにはどうすればいいですか? 質問する

完全なパスを指定して Python モジュールをロードするにはどうすればよいですか?

ファイルは、ユーザーがアクセス権を持つファイルシステム内のどこにでも配置できることに注意してください。


参照: 名前を文字列として指定したモジュールをインポートするにはどうすればよいでしょうか?

ベストアンサー1

で定義されたモジュールMyClassを にしましょう。以下はこのモジュールからインポートする方法です。module.name/path/to/file.pyMyClass

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()

Python 3.3 および 3.4 の場合は以下を使用します。

from importlib.machinery import SourceFileLoader

foo = SourceFileLoader("module.name", "/path/to/file.py").load_module()
foo.MyClass()

(ただし、これは Python 3.4 では非推奨になっています。)

Python 2の場合は以下を使用します:

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()

コンパイルされた Python ファイルと DLL には同等の便利な関数があります。

参照翻訳: 翻訳者: python

おすすめ記事