для моей магистерской диссертации, я пытаюсь использовать природу Python в качестве языка сценариев, чтобы разрешить изменения времени исполнения исходного кода. Сам исходный код моделируется с использованием специального пользовательского интерфейса и генерируется при сохранении. При запуске сгенерированный код отправляется в движок и импортируется. Этот процесс работает нормально до тех пор, пока исходный код не изменится без перезапуска двигателя между двумя запусками (но перезапуск не является вариантом).Изменения кода времени выполнения Python 2.7
Проблема в том, что двигатель по-прежнему содержит ссылку на старый исходный код, даже если файл был изменен.
Я потратил немало времени на поиск решений и нашел reload() как один из вариантов (ref). К сожалению, это почему-то не работает. Вот текущая версия соответствующей части (выполняется каждый раз изменения исходного кода будут получены):
package = __import__("tmp", fromlist=["tmp"])
reload(package) # this seems to have no effect
clsmembers = inspect.getmembers(package, lambda member: inspect.isclass(member) and member.__module__ == package.__name__)
beclass = clsmembers[0][1]
be = beclass()
Я работаю с Python 2.7 (у меня есть, я знаю, более поздние версии Python обеспечивают лучшую поддержку для этой функции). Это не должно быть reload(), мне просто нужно каким-либо образом повторно импортировать изменения кода.
Любая помощь приветствуется! :)