2016-12-28 1 views
0

Обычно основная причина, по которой я использую jupyter notebook с python, - это возможность инициализировать один раз (и только один раз) объекты (или вообще «данные»), которые имеют тенденцию иметь длительные (скажем, более 30 секунд) времена загрузки. Когда моя работа итеративна, то есть я запускаю минимально измененную версию некоторого алгоритма несколько раз, накопленная стоимость повторной инициализации может стать большой в конце дня.Альтернативный рабочий процесс для использования ноутбука jupyter (также как избежать повторной задержки инициализации)?

Я ищу альтернативный подход (что позволяет избежать затрат повторной инициализации без использования ноутбука) по следующим причинам:

  • Нет «из коробки» контроль версий при использовании ноутбука.
  • Случайные проблемы «Я забыл переименовать переменную в одном месте». Все работает нормально, пока ноутбук не перезагрузится.
  • Обычно я хочу иметь полезный модуль python в конце концов.
  • Как-то при использовании ноутбука я стараюсь получить код, который, если далек от «чистого» (я думаю, это больше проблема самодисциплины ...).

Идеальный рабочий процесс должен обеспечивать выполнение всей разработки внутри IDE (например, pyCharm; BTW linux - единственный вариант). Есть идеи?

Я думаю о внедрении простого (локального) исполняющего сервера, который предотвращает инициализацию проблематичных объектов как глобальных переменных и запускает код по требованию (который использует эти глобальные переменные вместо выполнения инициализации) путем нереста нового процесса каждый времени (таким образом, эти объекты защищены от модификации, в то же время благодаря тому, что эти переменные являются глобальными, при росте нового процесса нет штрафа солености/неукрытия).

Но прежде, чем я начну реализовывать это, возможно, уже существует какое-то рабочее решение или рабочий процесс?

ответ

1

Код Visual Studio + расширение Python прекрасно работает (как Windows, так и Mac, не уверен в Linux). Очень быстрая и легкая, интеграция Git, отладка рефакторинга и т. Д.

Также есть IDE под названием Spyder, более специфичный для Python. Также отлично работает, но более тяжелый.

+0

Он выглядит визуально-студийный код имеет возможность запускать выделение внутри ядра jupyter (https://github.com/DonJayamanne/pythonVSCode/wiki/Jupyter- (IPython)). Linux, похоже, также поддерживается, я даю ему попробовать –

Смежные вопросы