Правильный рабочий процесс?- Распространяемая среда, включая ноутбук Jupyter - PullRequest
0 голосов
/ 10 октября 2018

Я занимаюсь разработкой приложений, использующих ноутбук Jupyter и ipywidgets для интерфейса от GUI к базе кода бэкенда.У меня возникли проблемы с распространением / установкой пакетов обычным способом, такие как:

  • неожиданные различия между необходимыми версиями библиотеки (например, pandas)
  • needs.txt, вынуждающие выполнить обновление болеепоследняя версия библиотеки, когда пользователь поддерживает и использует свою собственную кодовую базу в более старой версии этой библиотеки.

Я думаю, что pipenv может решить эту проблему, но я хочу проверить, есть ли у меняправильное использование, прежде чем идти слишком далеко по этому пути.

Требования:

  • пользователь должен иметь возможность перезапускать Jupyter Notebook в одной и той же среде несколько раз, запуская программу с нуля,пока не будет доступна новая версия.
  • Все пользователи находятся на Mac.
  • Любая установка не должна изменять site-packages и т. д., не влияют на настройку Python, которую любой пользователь имеет в настоящее время.

Концепция рабочего процесса

Разработка:

  1. Разработка в среде pipenv (я использую Pycharm, так чтоэто относительно просто).
  2. Включить jupyter в Pipfile [requires], хотя jupyter не импортировано нигде в моем источнике.
  3. Используйте pipenv install new_package, как и когда моя кодовая база требует новых пакетов, и поддерживайте Pipfile (с учетом --dev для тестирования пакетов и т. Д.).

Установка пользователя

  1. Создание zip-файла, содержащего исходный код, setup.py и т. Д., А также Pipfile и Pipfile.lock.
  2. Пользователь извлекает zip-файл в известное место на своем компьютере.
  3. В терминале перейдите к разархивированному местоположению папки и выполните pipenv install.

Использование:

  1. В терминале перейдите к местоположению папки и выполните pipenv shell
  2. Запустите pipenv run jupyter notebook, чтобы перезагрузить env и блокнот.
  3. Когда закончите, закройте блокнот и запустите exit, чтобы закрыть env.

Удалитьenv и обновите до новой версии

  1. В терминале перейдите к папке и запустите pipenv --rm.
  2. Загрузите новый zip-файл с исходным кодом и выполните шаги, описанные выше.

Если я понял, это должно гарантировать, что любой может использовать дистрибутив в формате tigСконтролируемая среда, без каких-либо изменений в существующей установке Python?Я слишком усложнил вещи?

...