Я создаю пакет для подключения к другим библиотекам ( livelossplot ).В нем много необязательных зависимостей (сред глубокого обучения), и я не хочу заставлять людей устанавливать их.
Сейчас я использую условный импорт в духе:
try:
from .keras_plot import PlotLossesKeras
except ImportError:
# import keras plot only if there is keras
pass
Тем не менее, это означает, что он импортирует большие библиотеки, даже если вы не собираетесь их использовать.Вопрос: как импортировать библиотеки только тогда, когда создается конкретный объект?
Для функций Python это просто:
def function_using_keras():
import keras
...
Что такое хорошая практикадля классов, унаследованных от других классов?
Похоже, что родительский класс необходимо импортировать перед определением объекта:
from keras.callbacks import Callback
class PlotLossesKeras(Callback):
...