関連する質問を調べましたが、この特定の回答が見つかりません。
アプリケーションに Python を組み込み、任意の名前のモジュールをインポートできるように sys.meta_path にフックを追加しました。(つまり、モジュール定義はディスク上に存在しませんが、パッケージ内のメモリ内で定義されます)。
これにより、次のことが可能になります。
import my_module_1#2#31421
あるいは:
__import__("my_module_1#2#31321")
この問題は、特定のラベル自体にスラッシュが含まれている場合に発生します。
import my_module_1/123/56
また
__import__("my_module_1/123/56")
meta_path フックを読み取る前に、次のエラーが発生します。
ImportError: ファイル名によるインポートはサポートされていません。
次のようなことも試しました:
import imp imp.load_source('my_module_1', '123/56')
しかし、これも meta_path フックに到達しません。渡す必要がある任意の名前は、実際には「パス」のようなものですが、ディスク パスを参照していません。
誰か提案はありますか?
どうもありがとう、ロブ。