Я пытаюсь решить следующую проблему: скажем, у меня есть скрипт Python (назовем его Test.py), который использует модуль расширения C ++ (сделанный через SWIG, давайте назовем модуль «Пример»).У меня есть Test.py, Example.py и _Example.so в одном каталоге.
Теперь, в середине работы Test.py, я хочу внести изменения в мой модуль Example, перекомпилировать (которыйперезапишет существующий .so) и с помощью команды изящно остановит Test.py, который все еще использует старую версию модуля (у Test.py есть некоторая очистка, которая использует некоторые вещи, определенные в модуле Example), затем запустите его снова, используя новую версию модуля.Изящная остановка Test.py и THEN перекомпиляция модуля в моем случае не вариант.
Проблема в том, что как только _Example.so перезаписывается и Test.py пытается получить доступ ко всему, что определено в модуле Example (в то время как изящно останавливаясь), я получаю ошибку сегментации.Одним из решений этой проблемы является явное присвоение имени модулю Example путем добавления номера версии в конце, но мне было интересно, есть ли лучшее решение (я не хочу импортировать Example_1_0)?