モジュールを動的にインポートしてクラスを作成する必要があります。
これはPython 3.2での私の作業コードです:
klass = {}
mod = __import__('sites.' + self.className + '_login', fromlist=[self.className])
klass[self.className] = getattr(mod, self.className)
klass[self.className](**self.args)
モジュールはsites
フォルダ内にあります。それが呼び出されmy_site_login
、そのモジュール内のクラスですmy_site
。
Python 3.3 にアップグレードしたため、コードが機能しなくなりました。_____import_____
に置き換えられたことを読みましたimportlib.import_module
。いくつかの方法を試しましたが、うまくいきません。
これは私が試したものです:
https://stackoverflow.com/a/8790051/1095101
mod = getattr(import_module('sites.' + self.className + '_login'), self.className)
他に何を試したか思い出せません。私が言えることは、print()
インポートを試みた直後に置いたものはどれも表示されていなかったということです。エラーメッセージは表示されません。それは何もしません。