Напишите хук импорта PEP-302, который знает, какой модуль импортирует какой
Допустим, у меня есть модули foo.py
а также bar.py
и оба имеют import baz
Заявление в своем коде.
Я хочу написать хук импорта, который я могу вставить в sys.meta_path
что знает ли baz
импортируется из foo
или из bar
,
Причина, по которой я хочу это сделать, заключается в том, что я хочу, чтобы мое приложение могло загружать плагины и сохранять их зависимости изолированными, как я мог бы использовать отдельные ClassLoader
экземпляры в Java. Таким образом, плагин foo
и плагин bar
сможет связывать разные версии библиотеки baz
без конфликта Я хочу достичь этого путем изменения механизма импорта для создания отдельных модулей для import baz
заявление в зависимости от того, откуда это заявление.
Если у кого-то есть лучший способ сделать это, не стесняйтесь предлагать это в своем ответе.