Я занимаюсь разработкой своих вещей на python. В этом процессе я столкнулся с ситуацией, когда у меня есть строка с именем «import django». И я хочу проверить эту строку. Это означает, что я хочу проверить, находится ли упомянутый модуль (в данном случае 'django') в пути python. Как я могу это сделать?
Мой предыдущий ответ был неправильным - я не думал проверять свой код. Это действительно работает, хотя: посмотрите на модуль imp .
Чтобы просто проверить импортируемость модуля в текущем sys.path:
try: imp.find_module('django', sys.path) except ImportError: print "Boo! no django for you!"
Если имя модуля доступно в виде строки, вы можете импортировать его, используя встроенную функцию __import__.
__import__
module = __import__("module name", {}, {}, [], -1)
Например,
os = __import__("os", {}, {}, [], -1)
Я не сомневаюсь, что это безопасно, но это самое наивное решение:
try: exec('import django') except ImportError: print('no django')