Как стать автором
Обновить

Комментарии 9

Ссылка на телеграмм у вас стоит по умолчанию на telegram.

Спасибо! Исправил.

А почему бы не создать докер контейнер для всего этого? В плане использования будет гораздо проще чем следовать пошаговой инструкции.

Спасибо за интересную идею! Я знаю про Docker, но вот насчёт того, что это будет проще, у меня сомнения:


  1. Я могу создать портативную сборку и скинуть её пользователю. Ему только распаковать, и он может работать. Ничего дополнительно, включая Docker, ему ставить не надо.
  2. Docker нормально поддерживает Windows 10. Что касается Windows 7 или 8, я пытался установить в одно время и это даже работало, но выглядело это всё как костыли. Я пока не понял, чем это лучше обычной виртуалки.
  3. Если пользователь (особенно начинающий) решит поправить что-то в файлах, ему достаточно зайти в папку dist. В случае с Docker ему ещё надо разобраться, как зайти в файловую систему.
  4. Созданная мною портативная сборка позволит писать программы под Windows. У Docker обычно Linux в образах...

Мнение моё конечно субъективно, но я считаю, что лучше минимум прослоек. Особенно для начинающих.

Ему только распаковать, и он может работать. Ничего дополнительно, включая Docker, ему ставить не надо.

Да Docker поставить придется, но на мой взгляд он как универсальный инструмент все равно должен быть установлен на любой машине.
А если серьезно то это дополнительная зависимость, но зато она позволяет избавиться от всех других зависимостей.


И пользователю после этого достаточно будет передать короткую команду вида docker run --name jupyter -d -p 8888:8888 jupyter/minimal-notebook.
Такую команду можно отправить письмом, в мессенджере и СМСкой. Понятно что пользователью придется скачить имидж, но это все сделает докер и думать
о том как передать сотни мегабайтов не нужно.


На Windows 7 нормально работает Docker for Windows Toolbox. Использовать его или Docker for Windows это предпочтения виртуализации — Hyper V или Virtual Box, дело вкуса.


Если пользователь (особенно начинающий) решит поправить что-то в файлах, ему достаточно зайти в папку dist.
В случае с Docker ему ещё надо разобраться, как зайти в файловую систему.

Зайти очень просто "docker exec -it /bin/bash" но делать этого не надо.
Идеология Докера в том, чтобы создать новый конейнер на основе имиджа, а делается это всего несколькими строками Dockerfile.

FROM jupyter/minimal-notebook
EXPOSE 8888
RUN pip install --upgrade pip \
    && pip install pandas
ENTRYPOINT ["/opt/conda/bin/jupyter", "notebook", "--NotebookApp.token=''"]

Теперь получился имидж основанный на minimal-notebook в который поставлена pandas.
Очень просто и наглядно.


Созданная мною портативная сборка позволит писать программы под Windows. У Docker обычно Linux в образах..

Да в Докере Линукс под капотом, но если ставится Jupyter то какая разница где бежит кросс-платформенный Питон?
Если же речь о том, чтобы редактировать файлы в любимом редакторе, то сделав shared volume для докер контейнера — можно редактировать файлы в любом редакторе
проинсталированным под Windows, а код запускать внутри конейнера, где все окружение стандартизировано.


Весьма рекомендую взглянуть на решение основанное на докере. На работе мы уже давно используем Jupyter, вернее Jupyterhub, потому что хотели получить
многопользовательское решение с нулевым footprint на машине пользователей.

Интересно, как там с поддержкой CUDA из докер под виндой в 2021-м?
Интересно, мне и полезно очень оказалось. Автору огромное спасибо.
Есть ли возможность пояснить как настраивать pandas. Я часто использую numpy-pandas.
Правильно ли я понял, что папки создаются под отдельные пакеты?

Каждая папка в dist\config действительно под отдельный пакет. Эта структура не жёсткая. Например, вы можете использовать два виртуальных окружения с различными версиями Python, и структура файлов в папке dist может быть примерно такой:


C:\
    Dev\
        Jupyter\
            dist\
                apps\
                conf\
                    py2.7\
                        ipython\
                        jupyter\
                        matplotlib\
                    py3.7\
                        ipython\
                        jupyter\
                        matplotlib\
                fonts\
                tmp\
                pyenv2.7-win64
                pyenv3.7-win64
            projects\

Только не забудьте подредактировать пути в setenv.bat.


Вообще, Matplotlib, Jupyter и IPython по умолчанию создают папки .matplotlib, .jupyter и .ipython. Имена этих папок начинаются с точки, что соответствует скрытому каталогу в Linux. На Windows можно создать папки, название которой начинается с точки, но либо консольной командой mkdir, либо в специальных файловых менеджерах, например, Directory Opus. Я решил избавить новичков от таких нюансов, поэтому в инструкции папки без точки в начале названия.


Что касается Pandas, я сходу не нашёл, какие переменные окружения использует эта библиотека. Честно говоря, я с большим трудом нашёл про переменные окружения у Matplotlib. Подскажите пожалуйста, где в документации найти это, и я добавлю про Pandas в свою инструкцию.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории