Обычно основная причина, по которой я использую jupyter notebook с python, - это возможность инициализировать один раз (и только один раз) объекты (или вообще «данные»), которые имеют тенденцию иметь длительные (скажем, более 30 секунд) времена загрузки. Когда моя работа итеративна, то есть я запускаю минимально измененную версию некоторого алгоритма несколько раз, накопленная стоимость повторной инициализации может стать большой в конце дня.Альтернативный рабочий процесс для использования ноутбука jupyter (также как избежать повторной задержки инициализации)?
Я ищу альтернативный подход (что позволяет избежать затрат повторной инициализации без использования ноутбука) по следующим причинам:
- Нет «из коробки» контроль версий при использовании ноутбука.
- Случайные проблемы «Я забыл переименовать переменную в одном месте». Все работает нормально, пока ноутбук не перезагрузится.
- Обычно я хочу иметь полезный модуль python в конце концов.
- Как-то при использовании ноутбука я стараюсь получить код, который, если далек от «чистого» (я думаю, это больше проблема самодисциплины ...).
Идеальный рабочий процесс должен обеспечивать выполнение всей разработки внутри IDE (например, pyCharm; BTW linux - единственный вариант). Есть идеи?
Я думаю о внедрении простого (локального) исполняющего сервера, который предотвращает инициализацию проблематичных объектов как глобальных переменных и запускает код по требованию (который использует эти глобальные переменные вместо выполнения инициализации) путем нереста нового процесса каждый времени (таким образом, эти объекты защищены от модификации, в то же время благодаря тому, что эти переменные являются глобальными, при росте нового процесса нет штрафа солености/неукрытия).
Но прежде, чем я начну реализовывать это, возможно, уже существует какое-то рабочее решение или рабочий процесс?
Он выглядит визуально-студийный код имеет возможность запускать выделение внутри ядра jupyter (https://github.com/DonJayamanne/pythonVSCode/wiki/Jupyter- (IPython)). Linux, похоже, также поддерживается, я даю ему попробовать –