Имитация отсутствия зависимости при тестировании скрипта Python - PullRequest
4 голосов
/ 22 марта 2011

Какой лучший способ временно скрыть установленный модуль от скрипта Python, чтобы проверить, как он обрабатывает среды, в которых не установлен модуль?

Я бы хотел избежать удаления модуля только для проверки.

Ответы [ 2 ]

6 голосов
/ 22 марта 2011
import sys
sys.modules['numpy']=None

Установка sys.modules['numpy']=None заставляет Python думать, что он уже пробовал и не смог импортировать numpy. Последующие попытки импорта numpy теперь поднимают ImportError:

try:
    import numpy
except ImportError as err:
    print(err)
    # No module named numpy

Удаление sys.modules['numpy'] позволяет импортировать numpy как обычно:

del sys.modules['numpy']
import numpy
3 голосов
/ 22 марта 2011

Измените свой путь Python.

Порядок каталогов в sys.path показывает порядок поиска.

Вы можете изменить sys.path в тесте, чтобы изменить порядок поиска.

...