with add_path("/path/to/dir"):
mod = __import__("mymodule")
При выходе из тела оператора withsys.path будет восстановлено исходное состояние. Если вы используете только модуль внутри этого блока, вы также можете удалить его ссылку из sys.modules:
del sys.modules["mymodule"]
Ответ 2
Добавление значения в sys.path только временно изменяет его, т.е. только для этого сеанса.
Постоянные изменения производятся путем изменения PYTHONPATH и каталога установки по умолчанию.
Итак, если по-временному вы предназначались только для текущего сеанса, тогда ваш подход в порядке, но вы можете удалить часть pop, если somedir не скрывает какие-либо важные модули, которые, как ожидается, будут найдены в PYTHONPATH, текущий каталог или каталог установки по умолчанию.