どうすればPythonの文字列からクラスをインポートしてインスタンス化できますか?
from envs.test_env import TestEnv
my_instance = TestEnv()
ファイルtest_env.pyは、フォルダENVSであり、私はこれらの2行が正常に動作することができますが、私は、文字列でそれを行うのですか欲しいです。私はいくつかの類似のチケットがありましたが、鉱山が異なるようだ
ModuleNotFoundError: No module named 'envs/test_env'
:私が手にエラーがある
path = "envs/test_env"
my_class_name = "TestEnv"
mod = __import__(path)
my_class = getattr(my_class_name,my_class_name)
my_instance = my_class()
:そうENVS/test_folder.py
は、私のような文字列変数を持つようにしたいです私はいくつかの異なるものを組み合わせています。私はサブディレクトリにあるファイルをインポートしたい、私は文字列でクラス名とファイル名を持っています。
を使用して==================================
: __import __(名前、グローバル=なし、ローカル=なし、fromlist =()、レベル= 0) - >モジュール モジュールをインポートします。この関数はPython インタプリタで使用するためのものであり、一般的な用途ではないため、 importlib.import_module()を使用してプログラムでモジュールをインポートする方が良いでしょう。 – ShpielMeister
インポートでは、スラッシュではなくドットで区切ったディレクトリ名を使用します –
dotはうまくいきませんでした – jas