ホームページ > バックエンド開発 > Python チュートリアル > フルパスを使用して Python モジュールを動的にインポートするにはどうすればよいですか?

フルパスを使用して Python モジュールを動的にインポートするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-30 14:41:10
オリジナル
403 人が閲覧しました

How Can I Dynamically Import a Python Module Using Its Full Path?

フルパスを指定したモジュールの動的インポート

Python では、名前を事前に知らなくてもモジュールをインポートできますが、そのフルパス。この機能は、モジュールが別のディレクトリに配置されている場合、またはモジュール名が動的に生成される場合に役立ちます。

解決策

モジュールを動的にインポートするには、いくつかの方法があります。フルパスに基づく:

Python 3.5 :

import importlib.util
import sys

# Define the full path to the module
module_path = "/path/to/module.py"

# Create a specification for the module
spec = importlib.util.spec_from_file_location("module_name", module_path)

# Create the module from the specification
foo = importlib.util.module_from_spec(spec)

# Add the module to the list of imported modules
sys.modules["module_name"] = foo

# Execute the module's code
spec.loader.exec_module(foo)

# Access a class from the imported module
foo.MyClass()
ログイン後にコピー

Python 3.3 および 3.4:

from importlib.machinery import SourceFileLoader

# Define the full path to the module
module_path = "/path/to/module.py"

# Create a SourceFileLoader object
foo = SourceFileLoader("module_name", module_path).load_module()

# Access a class from the imported module
foo.MyClass()
ログイン後にコピー

Python 2:

import imp

# Define the full path to the module
module_path = "/path/to/module.py"

# Import the module using imp.load_source()
foo = imp.load_source('module_name', module_path)

# Access a class from the imported module
foo.MyClass()
ログイン後にコピー

これらが唯一のオプションではなく、状況に応じて他の方法が利用できる場合があることに注意してください。特定のニーズと Python のバージョンに応じて決定します。

以上がフルパスを使用して Python モジュールを動的にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート