Я использую собственный модуль регистрации в моем проекте. Если он недоступен, я бы хотел заменить его манекеном, а не поднимать ImportError
.Pythonic способ обработки ошибок импорта
Вот код, который в настоящее время делает это:
try:
import logger
except ImportError:
print 'Couldn\'t load logger'
class DummyLogger(object):
def __init__(self):
pass
def log(self, image):
pass
logger = DummyLogger()
Я не думаю, что это элегантное решение. Это работает, конечно, но это не приятно. Есть ли способ лучше?
Почему он не может быть доступен? –
@ArashSaidi, моя программа - это конвейер обработки изображений. Он принимает изображение, делает материал для него и сохраняет результаты. Отдельно у меня есть сценарий для обучения классификатору, который я использую внутренне. Этот скрипт должен выполнить некоторую предварительную обработку необработанных данных перед подачей их в классификатор. Подпроцессы предварительной обработки находятся в модуле, о котором я говорю. Этот модуль находится в подкаталоге основного проекта, поэтому, когда я запускаю основную программу, все работает нормально. Когда я запускаю обучение, модуль не видит регистратора, который находится на одном уровне выше в файловой системе. – Pastafarianist