Я пытаюсь динамически добавлять код python в модуль песочницы для выполнения на удаленной машине. У меня возникла проблема с обработкой импортированных методов. Например, обычно видны сценарии, такие как:
from test_module import g
import other_module
def f():
g()
other_module.z()
Я знаю, что могу разбить f на g и потенциально z, но как сохранить область "other_module" для z? Если я помещу как f, так и g в песочницу, тогда z не будет корректно разрешено при вызове f. Можно ли использовать какой-либо встроенный модуль для правильного выбора z, т.е. Sandbox.other_module?
Моя цель для загрузки удаленного кода в песочницу - не загрязнять глобальное пространство имен. Например, если другой удаленный метод вызывается с собственным графиком зависимости, он не должен мешать другому набору удаленных кодов. Является ли реалистичным ожидать, что python будет стабильным с использованием модулей песочницы, входящих и выходящих из использования? Я говорю это из-за этого сообщения: Как выгрузить (перезагрузить) модуль Python? что заставляет меня чувствовать, что это может быть проблематичным удаление модулей, таких как различные песочницы в этом случае.