Warning
This documentation is for an old version of IPython.
You can find docs for newer versions here.
IPython requires Python 2.7 or ≥ 3.3.
Note
If you need to use Python 2.6 or 3.2, you can find IPython 1.x
here,
or get it with pip:
If you have pip
,
the quickest way to get up and running with IPython is:
$ pip install "ipython[all]"
This will download and install IPython and its main optional dependencies for the notebook,
qtconsole, tests, and other functionality.
Some dependencies (Qt, PyQt for the QtConsole, pandoc for nbconvert) are not pip-installable,
and will not be pulled in by pip.
To run IPython’s test suite, use the iptest command:
Overview¶
This document describes in detail the steps required to install IPython,
and its various optional dependencies.
For a few quick ways to get started with package managers or full Python distributions,
see the install page of the IPython website.
IPython is organized into a number of subpackages, each of which has its own dependencies.
All of the subpackages come with IPython, so you don’t need to download and
install them separately. However, to use a given subpackage, you will need to
install all of its dependencies.
Please let us know if you have problems installing IPython or any of its dependencies.
IPython and most dependencies can be installed via pip.
In many scenarios, this is the simplest method of installing Python packages.
More information about pip
can be found on
its PyPI page.
More general information about installing Python packages can be found in
Python’s documentation.
Installing IPython itself¶
Given a properly built Python, the basic interactive IPython shell will work
with no external dependencies. However, some Python distributions
(particularly on Windows and OS X), don’t come with a working readline
module. The IPython shell will work without readline
, but will lack
many features that users depend on, such as tab completion and command line
editing. If you install IPython with pip
,
then the appropriate readline
for your platform will be installed.
See below for details of how to make sure you have a working readline
.
Installation using pip¶
If you have pip
, the easiest way of getting IPython is:
That’s it.
Installation from source¶
If you don’t want to use pip, or don’t have it installed,
grab the latest stable build of IPython from here. Then do the following:
$ tar -xzf ipython.tar.gz $ cd ipython $ python setup.py install
If you are installing to a location (like /usr/local
) that requires higher
permissions, you may need to run the last command with sudo.
Installing the development version¶
It is also possible to install the development version of IPython from our
Git source code repository. To do this you will
need to have Git installed on your system. Then do:
$ git clone --recursive https://github.com/ipython/ipython.git $ cd ipython $ python setup.py install
Some users want to be able to follow the development branch as it changes. If
you have pip
, you can replace the last step by:
This creates links in the right places and installs the command line script to
the appropriate places.
Then, if you want to update your IPython at any time, do:
IPython now uses git submodules to ship its javascript dependencies. If you run
IPython from git master, you may need to update submodules once in a while with:
or
$ python setup.py submodule
Another option is to copy git hooks
to your ./git/hooks/
directory to ensure that your submodules are up to date on each pull.
Basic optional dependencies¶
There are a number of basic optional dependencies that most users will want to
get. These are:
- readline (for command line editing, tab completion, etc.)
- nose (to run the IPython test suite)
- mock (Python < 3, also for tests)
If you are comfortable installing these things yourself, have at it, otherwise
read on for more details.
IPython uses several other modules, such as pexpect and path.py, if they are
installed on your system, but it can also use bundled versions from
IPython.external
, so there’s no need to install them separately.
readline¶
As indicated above, on Windows, to get full functionality in the console
version of IPython, PyReadline is needed.
PyReadline is a separate, Windows only implementation of readline that uses
native Windows calls through ctypes
. The easiest way of installing
PyReadline is you use the binary installer available here.
On OS X, if you are using the built-in Python shipped by Apple, you will be
missing a proper readline implementation as Apple ships instead a library called
libedit
that provides only some of readline’s functionality. While you may
find libedit sufficient, we have occasional reports of bugs with it and several
developers who use OS X as their main environment consider libedit unacceptable
for productive, regular use with IPython.
Therefore, IPython on OS X depends on the gnureadline
module.
We will not consider completion/history problems to be bugs for IPython if you are using libedit.
To get a working readline
module on OS X, do (with pip
installed):
$ pip install gnureadline
Note
Other Python distributions on OS X (such as Anaconda, fink, MacPorts)
already have proper readline so you likely don’t have to do this step.
When IPython is installed with pip
,
the correct readline should be installed if you specify the terminal
optional dependencies:
$ pip install "ipython[terminal]"
nose¶
To run the IPython test suite you will need the nose
package. Nose
provides a great way of sniffing out and running all of the IPython tests. The
simplest way of getting nose is to use pip:
Another way of getting this is to do:
$ pip install "ipython[test]"
For more installation options, see the nose website.
Once you have nose installed, you can run IPython’s test suite using the
iptest command:
Dependencies for IPython.parallel (parallel computing)¶
IPython’s inter-process communication uses the PyZMQ bindings for the ZeroMQ messaging library.
This is the only dependency for IPython.parallel
.
Shortcut:
pip install "ipython[parallel]"
or manual
PyZMQ provides wheels for current Python on OS X and Windows, so installing pyzmq will typically not require compilation.
IPython.parallel can use SSH tunnels, which require paramiko on Windows.
Dependencies for the IPython Qt console¶
pyzmq, pygments, PyQt (or PySide)
Shortcut:
pip install "ipython[qtconsole]"
or manual
pip install pyzmq pygments
PyQt/PySide are not pip installable, so generally must be installed via system package managers (or conda).
Dependencies for the IPython HTML notebook¶
The HTML notebook is a complex web application with quite a few dependencies:
pyzmq, jinja2, tornado, mistune, jsonschema, pygments, terminado
Shortcut:
pip install "ipython[notebook]"
or manual:
pip install pyzmq jinja2 tornado mistune jsonschema pygments terminado
The IPython notebook is a notebook-style web interface to IPython and can be
started with the command ipython notebook
.
MathJax¶
The IPython notebook uses the MathJax Javascript library for rendering LaTeX
in web browsers. Because MathJax is large, we don’t include it with
IPython. Normally IPython will load MathJax from a CDN, but if you have a slow
network connection, or want to use LaTeX without an internet connection at all,
you can install MathJax locally.
A quick and easy method is to install it from a python session:
python -m IPython.external.mathjax
If you need tighter configuration control, you can download your own copy
of MathJax from http://www.mathjax.org/download/ — use the MathJax-2.0 link.
When you have the file stored locally, install it with:
python -m IPython.external.mathjax /path/to/source/mathjax-MathJax-v2.0-20-g07669ac.zip
For unusual needs, IPython can tell you what directory it wants to find MathJax in:
python -m IPython.external.mathjax -d /some/other/mathjax
By default MathJax will be installed in your ipython directory, but you
can install MathJax system-wide. Please refer to the documentation
of IPython.external.mathjax
Browser Compatibility¶
The IPython notebook is officially supported on the following browsers:
- Chrome ≥ 13
- Safari ≥ 5
- Firefox ≥ 6
The is mainly due to the notebook’s usage of WebSockets and the flexible box model.
The following browsers are unsupported:
- Safari < 5
- Firefox < 6
- Chrome < 13
- Opera (any): CSS issues, but execution might work
- Internet Explorer < 10
- Internet Explorer ≥ 10 (same as Opera)
Using Safari with HTTPS and an untrusted certificate is known to not work (websockets will fail).
Dependencies for nbconvert (converting notebooks to various formats)¶
For converting markdown to formats other than HTML, nbconvert uses Pandoc (1.12.1 or later).
To install pandoc on Linux, you can generally use your package manager:
sudo apt-get install pandoc
On other platforms, you can get pandoc from their website.
Step on Stepik: https://stepik.org/lesson/7150/step/1
В этом курсе для написания и запуска программ на питоне мы используем IPython Notebook. Давайте разберемся с тем, как установить IPython Notebook на компьютер.
Установка IPython Notebook в Windows.
Для того, чтобы установить IPython Notebook необходимо зайти на сайт и перейти по ссылке на страницу загрузки Miniconda.
Выберите Python3.6 и в зависимости от вашей системы 64-х или 32-х битную версию.
Пройдите по ссылке и скачайте установочный файл на ваш компьютер.
По окончании загрузки, откройте папку с загруженным файлом. Найдите в списке файл установщика Miniconda и запустите его.
В появившемся окне установщика, нажмите кнопку «Next».
Вам предложат ознакомится с лицензией и согласиться с ней. Нажмите «I Agree».
В следующем окне необходимо выбрать, будет ли доступна программа для всех пользователей. Выберите необходимый вариант и нажмите кнопку «Next».
Установщик предложит путь, по которому будут установлены файлы программы. Измените его, если устанавливаете программы по другому пути.
Поставьте галочку напротив пункта: Add Anaconda to the system PATH environment variable и нажмите кнопку «Install».
Дождитесь завершения установки файлов и нажмите кнопку «Next».
Оставьте галочки, если хотите узнать об Anaconda больше и завершите установку, нажав «Finish».
Теперь, когда Python установлен, необходимо установить IPython Notebook. Для этого мы будем использовать стандартный установщик питоновских пакетов — pip. Нажмите кнопку «Пуск» и в открывшемся меню, в строке поиска наберите следующую команду: pip install jupyter notebook
Запустится консоль. Вы можете наблюдать сообщения pip о загрузке и установке пакета и его зависимостей.
После завершения установки, консоль автоматически закроется.
Для того, чтобы запустить IPython Notebook, необходимо в строке поиска меню «Пуск» набрать команду и нажать «Enter»:
В открывшейся консоли появится сообщение о запуске IPython Notebook
В браузере откроется страница:
Создадим новый notebook (New -> Python3)
Notebook готов к работе!!!
Установка IPython Notebook в Mac OS X.
На странице загрузки Miniconda выбираем версию установщика и скачиваем его.
По окончании загрузки откроем терминал.
Перейдем в директорию с файлом установщика и запустим его (прим. на слайде приведена команда на момент написания курса, после команды bash укажите имя скаченного вами файла установщика).
Запустится процесс установки, вам будет предложено ознакомится и согласится с лицензией программы.
Далее будет задано несколько вопросов, касающихся настроек. Хорошим выбором будет — оставить настройки по умолчанию.
Когда установка завершится, приступим к установке необходимых пакетов. Для этого в консоли необходимо набрать команды со слайда ниже.
Запуск IPython Notebook
Запустится локальный сервер и в окне браузера откроется IPython Notebook.
Создадим новый notebook.
Всем привет. Когда я начинал изучение Python, устанавливал впервые Jupyter Notebook, потом пытался передать с созданное в нём приложение на предприятие, я часто сталкивался с различными проблемами. То кириллица в имени пользователя мешает, то настройки не перенеслись, то ещё чего-то. Все эти проблемы я преодолел в основном самостоятельно, используя Google и затратив немало времени на их решение.
По мере роста опыта я научился создавать папку, в которой лежит переносимое с одного компьютера на другой виртуальное окружение Python, настройки Jupyter и Matplotlib, портативные программы (ffmpeg и др.) и шрифты. Я мог написать дома программу, скопировать всю эту папку на компьютер предприятия, и быть уверенным, что ничего не потеряется и не сломается на ровном месте. Потом я подумал, что такую папку можно дать и новичку в Python, и он получит полностью настроенную и переносимую среду.
Оглавление
- Введение
- Краткая инструкция по созданию портативной сборки Jupyter
- Установка Miniconda (Python 3.7)
- Создание структуры каталогов
- Создание переносимого виртуального окружения Python
- Создание виртуального окружения с помощью conda
- Исправление ошибки HTTP 000 CONNECTION FAILED при создании виртуального окружения
- Активация виртуального окружения
- Установка пакетов Python в виртуальном окружении
- Выход из виртуального окружения Python
- Подготовка портативной сборки Jupyter к запуску
- Настройка переменных окружения для Jupyter, IPython и Matplotlib
- Создание файла для запуска Jupyter с настройками пользователя
- Дополнительные файлы для выполнения служебных действий
- Заключение
Введение
В последние годы Python стал популярным языком программирования. Его часто используют для написания математических расчётов, анализа больших данных, машинного обучения и построения нейросетей. После появления конструкций asinc
и await
стало возможным написания быстрых веб-фреймворков. Производительность Python постепенно повышается из релиза в релиз, а использование Cython или Numba может сделать приложение даже более быстрым, чем на других языках программирования. Например, скорость работы веб-фреймворка Vibora(en) сопоставима со скоростью работы решений на Go(en). В 2018 году Python официально стал языком для изучения в школах и вузах Франции(en) и Казахстана(en). В России как минимум некоторые кафедры перешли на Python, например, кафедра РК-6(ru) в МГТУ им. Н.Э. Баумана.
Приступая к изучению Python, новые пользователи порой сталкиваются с трудностями при установке необходимых библиотек и настройке среды программирования. Если имя пользователя Windows содержит не латинские символы, некоторые библиотеки могли не установиться или не запускаться. У начинающих пользователей могут возникать проблемы с настройкой Jupyter Notebook на локальном компьютере. Если он установлен на диске C:
, как открыть файл на диске D:
? Когда я делал первые шаги в Python, мне тоже приходилось преодолевать эту трудности.
Наконец, если все проблемы позади, могут возникнуть трудности передать приложение другому пользователю. Я сталкивался с ситуацией, когда созданное мною виртуальное окружение для Python отказывалось работать на другом компьютере. Кроме того, Jupyter Notebook и Matplotlib хранят свои настройки в папке пользователя, что усложняет перенос приложений, использующих специфичные настройки.
Решением описанных выше проблем будет создание полностью портативной сборки Jupyter Notebook и/или Jupyter Lab на Windows. Она хранит в себе интерпретатор Python, его библиотеки и настройки, настройки всех необходимых сторонних библиотек, включая Matplotlib и Jupyter, не привязано к имени пользователя и не будет ругаться, если вы запустите её на другом компьютере. Мы можем упаковать такую сборку в архив, либо написать скрипт или программу, которая создаст такую же сборку на компьютере абсолютного новичка. Более продвинутым пользователям портативная сборка может быть полезна тем, что она позволяет хранить окружение Python и настройки библиотек в разных местах. Вы можете разместить папку с настройками в специальное место, которое синхронизируется с облачным хранилищем: Dropbox, облако Mail.ru*, Яндекса или Google. За счёт этого на всех компьютерах автоматически получится локально работающая среда с одинаковыми настройками.
*Да, то самое, клиент которого под Linux больше не коннектится(ru). Если уберут аналогичный под Windows, мне придётся искать замену. 1 Тб на дороге бесплатно не валяется.
Для простоты восприятия материала я решил описать создание портативной сборки под Windows. Но эта инструкция с минимальными изменениями годится для создания сборки на Linux и Mac OS. Статья в первую очередь предназначена для новичков, поэтому я постарался описать как можно подробнее и проще для восприятия.
Статья состоит из двух частей. В первой части мы создадим портативную сборку, во второй займёмся настройками для Jupyter Notebook, Jupyter Lab, IPython и Matplotlib.
Краткая инструкция по созданию портативной сборки Jupyter
-
Создайте папку
C:Dev
. В ней будут установлены Minconda и портативная сборка Jupyter*.
*Здесь и далее Jupyter = Jupyter Notebook + Juputer Lab. -
Скачайте инсталлятор Miniconda с сайта https://conda.io/miniconda(en). Выберите Python 3 для Windows 64 бит или 32 бит в зависимости от разрядности вашей операционной системы. Установите Miniconda в папку
C:DevMiniconda3
. -
Создайте следующую структуру каталогов для портативной сборки Jupyter:
C: Dev Jupyter dist apps conf backup ipython jupyter matplotlib fonts projects
-
Создайте виртуальное окружение для Python с помощью
conda
*:C:DevMiniconda3Scriptsconda.exe create -p C:DevJupyterdistpyenv3.7-win64 --copy --yes python=3 conda
*Вы можете использовать канал
conda-forge
для установки более свежих библиотек, добавив аргумент-c conda-forge
:C:DevMiniconda3Scriptsconda.exe create -p C:DevJupyterdistpyenv3.7-win64 --copy --yes -c conda-forge python=3 conda
-
Активируйте окружение и установите пакеты Python с помощью
pip
*:C:DevJupyterdistpyenv3.7-win64Scriptsactivate pip --no-cache-dir install numpy scipy matplotlib jupyter jupyterlab
Примечание: если вам необходимо установить Numpy и Scipy, которые используют библиотеку MKL от Intel для ускорения расчётов, используйте(en)
intel-numpy
вместоnumpy
иintel-scipy
вместоscipy
(устанавливается только в Python 3.6!):pip --no-cache-dir install intel-numpy intel-scipy matplotlib jupyter jupyterlab
После установки выполните:
conda.bat deactivate
*Если возникнут ошибки при установке, попробуйте так:
C:DevJupyterdistpyenv3.7-win64Scirptsactivate conda config --add channels conda-forge conda install numpy scipy matplotlib jupyter jupyterlab
и после окончания установки
conda.bat deactivate
-
В папке
C:DevJupyterdist
создайте файлsetenv.bat
, который будет управлять тем, где Jupyter и Matplotlib будут хранить свои настройки:@echo off set conf_path=%~dp0conf set JUPYTER_CONFIG_DIR=%conf_path%jupyter set JUPYTER_DATA_DIR=%conf_path%jupyterdata set JUPYTER_RUNTIME_DIR=%conf_path%jupyterdataruntime set IPYTHONDIR=%conf_path%ipython set MPLCONFIGDIR=%conf_path%matplotlib REM Matplotlib search FFMPEG in PATH variable only! set PATH=%~dp0appsffmpegbin;%PATH%
-
В папке
C:DevJupyterdist
создайте файлrun_jupyter_notebook.bat
для запуска Jupyter Notebook с заданными параметрами:@echo off call %~dp0setenv.bat call %~dp0pyenv3.7-win64Scriptsjupyter-notebook.exe --notebook-dir=%1
-
Аналогично, в папке
C:DevJupyterdist
создайте файлrun_jupyter_lab.bat
для запуска Jupyter Lab с заданными параметрами:@echo off call %~dp0setenv.bat call %~dp0pyenv3.7-win64Scriptsjupyter-lab.exe --notebook-dir=%1
-
В папке
C:DevJupyterdist
создайте файлenable_extension.bat
, который активирует заданное расширение в Jupyter Notebook:@echo off REM Enable extension in Jupyter Notebook. REM Example: REM enable_extension.bat widgetsnbextension call %~dp0setenv.bat call %~dp0pyenv3.7-win64Scriptsjupyter-nbextension.exe enable %1
-
Предположим, что рабочие файлы находятся в папке
D:my-projects
. В этой папке создайте ярлыки на файлыrun_jupyter_notebook.bat
иrun_jupyter_lab.bat
. После создания каждого из ярлыков зайдите в его свойства и очистите строку «Рабочая папка». Если не очистить — Jupyter не увидит нужную вам папку! -
Портативная сборка Jupyter создана и готова к настройке и работе. Для начала работы просто кликните по созданным ярлыкам. Если вы решите не удалять установленную Miniconda, вы можете сократить размер папки
C:DevMiniconda3
следующей командой:C:DevMiniconda3Scriptsconda.exe clean --all
После выполнения данной команды нужно зайти в папку
C:DevMiniconda3pkgs
и очистить содержимое папки.trash
. Только тогда мы действительно сократим размер папкиMiniconda3
.
Установка Miniconda (Python 3.7)
Давайте создадим в корне диска C:
папку Dev
. В этой папке я складываю все программы и инструменты для разработки, которые почему-то предпочитают устанавливаться не в C:Program Files
. Например, туда я устанавливаю Ruby, Go, Python, Jupyter, Msys, SQLite Studio и т.д.
Сначала нам необходимо установить Python. У Python есть две ветки: Python 2 и Python 3. Python 2 поддерживается(en) до 2020 года, поэтому будем ставить только Python 3.
Для установки Python 3 обычно обращаются к официальному сайту python.org(en), откуда скачивают его и устанавливают. Однако мы хотим получить переносимую сборку, поэтому поступим иначе: мы скачаем и установим Miniconda.
Что такое Miniconda? По факту это Python с предустановленным и настроенным менеджером пакетов conda
. Консольная программа conda
позволит нам создать папку, в которой будет Python нужной нам версии вне зависимости от того, какая версия Python идёт в составе Miniconda. Также с помощью conda
в эту папку можно установить практически все известные библиотеки для Python: Numpy, Scipy, Matplotlib, Sympy и т.д. Папка, в которую установлен Python и его библиотеки, называется виртуальным окружением. Библиотеки для Python поставляются в форме специальных архивов, которые называются пакетами.
У conda есть отличительные особенности, из-за которой она удобна и для начинающих и опытных пользователей:
- Пакеты Python, которые устанавливаются через conda, уже скомпилированы под Windows. Меньше вероятность, что попытка установить его завершится ошибкой*.
- Вы можете создать виртуальное окружение с той версией Python, которая вам нужна. Не имеет значения, какая версия Python установлена с Miniconda.
*Надо отметить, что ситуация с установкой пакетов в Python из года в год улучшается. Несколько лет назад я не смог установить Numpy через pip
(выдавалась ошибка), и я использовал conda
. В 2018 году я попробовал последнюю версию pip
, и скачался файл с расширением .whl
(так называемое «колесо») с уже скомпилированным Numpy, и всё установилось прекрасно.
Итак, нам нужно скачать и установить Miniconda. Для этого пройдём на https://conda.io/miniconda(en) и выберем 64-битную версию для Windows на Python 3. Если у вас 32-битных компьютер, вам следует скачать 32-битную версию.
Miniconda ставится так же, как и обычное Windows приложение:
-
Запускаем инсталлятор, жмём Next
-
Соглашаемся с лицензионным соглашением I Agree
-
Я предпочитаю установку для всех пользователей, потому что это даст мне возможность указать путь для установки. Выбираем пункт «All users»:
-
Корректируем путь для установки на
C:DevMiniconda3
: -
Здесь я ставлю оба флажка. Флажок «Add Anaconda to the system PATH environment variable» сделает команду
conda
доступной в терминале из любого каталога. Если вы этот флажок не поставите, единственное, что изменится, это то, что в терминале вместоconda
вам понадобится набрать полный путь кconda.exe
. Я не устанавливаю Anaconda, потому что она мне ставит много чего лишнего, поэтому я игнорирую нежелательность установки данного флажка. Если вы поставите этот флажок, а после установки передумаете, вы можете просто удалитьconda
из системных переменных. Это просто. Но если не знаете, можете загуглить или спросить. Контакты в конце статьи.
Я также ставлю флажок «Register Anaconda as the system Python 3.7». Если какой-то программе вдруг понадобится Python, она будет использовать Python, установленный вместе с Miniconda. Также данный флажок сделает командуpython
доступной в терминале из любой папки. Данный флажок желательно поставить, если до этого вы не устанавливали Python. Если уже какой-то Python установлен, я бы не советовал ставить этот флажок сейчас, а скорректировать системные переменные при необходимости.
После этого нажимаем Install и начнётся процесс установки: -
Во время установки можете нажать Show details. Тем самым вы увидите больше информации о том, что именно происходит во время установки. Но это не обязательно.
-
Когда установка закончится, появится фраза «Completed», а кнопка Next станет доступной. Жмём Next
-
В последнем окне нам предлагается узнать про Anaconda Cloud (это первый флажок) и как начать работу с Anaconda (второй флажок). Мне ничего из этого не нужно, поэтому я снимаю все флажки и нажимаю Finish. Установка Miniconda завершена.
После установки Miniconda в папке C:Dev
мы увидим новую папку Miniconda
весом примерно 340 Мб. Да, это немало, и она ещё будет раздуваться. Позже я покажу, как быстро и безопасно уменьшать её объём.
Зайдём в папку Miniconda
. Немного прокрутив список файлов, мы увидим python.exe
. Тот самый Python 3.7, который установился в моём случае (на скриншоте Directory Opus).
Если дважды кликнуть по python.exe
— запустится консольное окно, в котором можно вводить команды Python.
Вы можете для теста после >>>
ввести:
import antigravity
и нажать Enter. Откроется браузер по умолчанию с комиксом про Python на xkcd.
В папке C:DevMinicondaScripts
мы найдём conda.exe
. Эта та самая консольная команда, с помощью которой мы будем создавать виртуальное окружение Python.
Создание структуры каталогов
Теперь у нас всё готово для того, чтобы начать создание портативной сборки Jupyter Notebook. Для начала создадим следующую структуру каталогов:
C:
Dev
Jupyter
dist
apps
conf
backup
ipython
jupyter
matplotlib
fonts
projects
В папке Dev
создайте папку Jupyter
. В свою очередь в папке Jupyter
создайте папки dist
и projects
. В папке dist
будет виртуальное окружение Python со всеми необходимыми библиотеками, файлы настроек, дополнительные программы, шрифты — всё, что необходимо для нашей разработки на Python в среде Jupyter Notebook или Jupyter Lab. Папка projects
— это место по умолчанию для проектов. Сам я эту папку обычно не использую, и она остаётся пустой. Но если мне понадобится передать программу другому пользователю вместе с настроенным Jupyter, я положу свою программу в эту папку projects
, сделаю архив всей папки Jupyter
и отправлю архив пользователю.
Папка apps
содержит вспомогательные программы. Например, я часто кладу туда портативную версию FFMPEG, которая нужная Matplotlib для создания анимации.
Папка conf
содержит настройки различных библиотек. В нашем случае для IPython, Jupyter и Matplotlib.
В папку confbackup
я кладу копии своих файлов настроек на случай, если в будущем где-то напортачу с настройками.
Папка fonts
содержит шрифты, которые могут быть использованы, например, в Matplotlib. Лично мне понравились Roboto и PTSerif.
Кроме папок apps
, conf
и fonts
вы можете создать и другие папки на своё усмотрение. Например, папку temp
для временных файлов.
Создание переносимого виртуального окружения Python
Создание виртуального окружения с помощью conda
Откройте командную строку (+R → cmd.exe
→ Enter) и введите*:
C:DevMiniconda3Scriptsconda.exe create -p C:DevJupyterdistpyenv3.7-win64 --copy --yes python=3 conda
*Для установки более свежих версий библиотек можно подключить канал conda-forge
через аргумент -c conda-forge
:
C:DevMiniconda3Scriptsconda.exe create -p C:DevJupyterdistpyenv3.7-win64 --copy --yes -c conda-forge python=3 conda
Если потом понадобится удалить канал conda-forge
, зайдите в Проводнике в папку %userprofile%
, найдите в ней файл .condarc
, откройте его блокнотом и удалите строку conda-forge
.
Рассмотрим эту команду. Сначала идёт полный путь к conda.exe
. Если при установке Minconda вы поставили галочку «Add Anaconda to the system PATH environment variable», вместо полного пути достаточно написать просто conda
.
Слово create
даёт команду создания нового окружения. Аргумент -p
говорит о том, что это окружение должно быть создано там, где мы укажем, а не в папке C:DevMiniconda3envs
. В примере прописан полный путь и название будущей папки pyenv3.7-win64
(расшифровка: python 3.7 environment for Windows 64-bit). Если у вас командная строка открыта в папке dist
или вы с помощью команды cd
заранее перешли в эту папку, вместо полного пути можно было написать просто pyenv3.7-win64
.
Аргумент --copy
сообщаетconda
, что в виртуальном окружении должны быть установлены сами пакеты. В противном случае пакет будет установлен в папке C:DevMiniconda3
, а в виртуальном окружении будет ссылка на него. Вы не заметите эту подмену, пока не попробуете запустить виртуальное окружение на другом компьютере.
Далее идёт перечисление пакетов. Прежде всего мы должны установить сам Python третьей версии. Также я обязательно указываю conda
. Т.е. программа conda
будет установлена дважды: в составе Miniconda и в виртуальном окружении. Установка conda
в виртуальном окружении увеличивает его размер совсем чуть-чуть, но даст возможность пользователю обновить пакеты в виртуальном окружении на компьютере, где Miniconda не установлена. Это делает виртуальное окружение полностью автономным. Вы можете даже деинсталлировать Miniconda после создания виртуального окружения, и оно продолжит работать как ни в чём не бывало. Я, правда, оставляю Miniconda на тот случай, если какому-то приложению понадобится Python.
Вообще, кроме Python и conda можно было сразу указать необходимые пакеты, но в 2018 году я перестал так делать и вместо этого стал использовать для установки пакетов pip
. Во-первых, новейшие версии pip
стали скачивать .whl
файлы с уже скомпилированными библиотеками, и проблемы с установкой ряда библиотек исчезли. Во-вторых, размер виртуального окружения при установке пакетов через pip
получается в 3 раза меньше, чем при установке пакетов через conda
.
Исправление ошибки HTTP 000 CONNECTION FAILED
при создании виртуального окружения
У одного из пользователей при выполнении команды
C:DevMiniconda3Scriptsconda.exe create -p C:DevJupyterdistpyenv3.7-win64 --copy --yes -c conda-forge python=3 conda
столкнулся с ошибкой следующего содержания:
> C:UsersAsus>C:DevMiniconda3Scriptsconda.exe create -p C:DevJupyterdistpyenv3.7-win64 --copy --yes -c conda-forge python=3 conda Collecting package metadata: failed CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/win-64/repodata.json> Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. SSLError(MaxRetryError('HTTPSConnectionPool(host='conda.anaconda.org', port=443): Max retries exceeded with url: /conda-forge/win-64/repodata.json (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))'))
Мне потребовался не один час, чтобы разобраться с ней, потому что на первый взгляд проблема либо с некорректной установкой Miniconda либо с сетью. У некоторых корпоративных пользователей действительно был заблокирован этот ресурс, но проблема происходила у пользователя дома. Переустановка Miniconda не помогла.
В итоге оказалось, что данная ошибка означает, что conda.exe
не нашло файл openssl.exe
. В итоге было применено следующее решение:
-
Создали папку
C:Devopenssl
. -
В папке
C:DevMiniconda3pkgs
нашли папку, название которой начинается сopenssl
. Например,openssl-1.1.1a-he774522_0
. Если папок несколько, выбираем ту, у которой в названии номер больше. -
В найденной папке ищем файл
openssl.exe
и копируемopenssl.exe
и все файлы и папки, которые лежат вместе сopenssl.exe
, вC:Devopenssl
. -
В Проводнике Windows заходим в «Этот компьютер» (где перечисляются все диски на компьютере). В свободном месте правым кликом мыши открываем контекстное меню и выбираем в самом низу пункт «Свойства».
-
В открывшемся окне находим «Дополнительные параметры системы»:
-
На вкладке «Дополнительно» находим кнопку Переменные среды:
-
Для Windows 7 и 8: в разделе «Переменные среды для пользователя» дважды кликаем по переменной
Path
. Если в конце строки отсутствует точка с запятой, поставим её, и в конце этой строки допишем:C:Devopenssl;
Для Windows 10: в разделе «Переменные среды для пользователя» дважды кликаем по переменной
Path
. В итоге должно появиться такое окно:
Нажимаем кнопку «Создать» и вставляем путьC:Devopenssl
. -
Закройте и откройте командную строку снова. Теперь всё должно работать. Если вдруг не заработало — надо гуглить ошибку или обращаться на форумы.
Активация виртуального окружения
Когда создание виртуального окружения закончится, окно будет выглядеть примерно так:
После создания виртуального окружения установим пакеты через pip
. Сначала необходимо активировать виртуальное окружение. Для этого в окне команд введите:
C:DevJupyterdistpyenv3.7-win64Scriptsactivate
В результате вы должны получить примерно следующее:
Слово (base)
в начале строки как указывает на то, что мы вошли в нужное нам виртуальное окружение.
Установка пакетов Python в виртуальном окружении
Теперь можно установить пакеты*:
pip --no-cache-dir install numpy scipy matplotlib jupyter jupyterlab
Аргумент --no-cache-dir
сообщает pip
, что не следует кешировать скачанные пакеты. Это позволит нам не увеличивать размер папки виртуального окружения.
*Существует разработанная Intel библиотека MKL (Math Kernel Library)(en), которая ускоряет работу на больших данных для популярных библиотек Python, в частности, Numpy и Scipy. Если вы хотите установить Numpy и Scipy, которые используют MKL, следует использовать(en) intel-numpy
вместо numpy
и intel-scipy
вместо scipy
:
pip --no-cache-dir install intel-numpy intel-scipy matplotlib jupyter jupyterlab
У меня получилось установить intel-numpy
и intel-scipy
только в виртуальном окружении с Python 3.6. Если вы хотите использовать Numpy и Scipy с MKL в окружении с Python 3.7, необходимо использовать команду:
conda install numpy scipy
Если вы не уверены, что ставить, используйте просто numpy
и scipy
.
Если в процессе установки через pip
возникнут ошибки, попробуйте установить проблемные пакеты через conda
. Пример:
conda install numpy scipy matplotlib jupyter jupyterlab
Выход из виртуального окружения Python
После того, как установка завершена, необходимо выйти из виртуального окружения. Для этого в командной строке наберите*:
conda.bat deactivate
*Раньше я набирал просто deactivate
, но это почему-то устарело, и надо набирать conda.bat deactivate
. Даже conda deactivate
будет неправильно.
Подготовка портативной сборки Jupyter к запуску
Создадим несколько .bat
файлов, которые будут заставят Jupyter и Matplotlib хранить настройки в папке distconfig
, а также будут управлять запуском Jupyter Notebook и Jupyter Lab.
Настройка переменных окружения для Jupyter, IPython и Matplotlib
Каталоги размещения настроек определяются переменными среды Windows. Изменив эти переменные, мы заставим Jupyter и Matplotlib хранить свои файлы там, где это нужно именно нам. В папке C:DevJupyterdist
создайте файл setenv.bat
следующего содержания:
@echo off
set conf_path=%~dp0conf
set JUPYTER_CONFIG_DIR=%conf_path%jupyter
set JUPYTER_DATA_DIR=%conf_path%jupyterdata
set JUPYTER_RUNTIME_DIR=%conf_path%jupyterdataruntime
set IPYTHONDIR=%conf_path%ipython
set MPLCONFIGDIR=%conf_path%matplotlib
REM Matplotlib search FFMPEG in PATH variable only!
set PATH=%~dp0appsffmpegbin;%PATH%
Разберём, что делается в этом файле.
Команда @echo off
необходима для того, чтобы в командной строке не выводилось сообщение при выполнении каждой строки нашего файла.
Команда set
создаёт переменную. Конструкция %~dp0
означает полный путь к setenv.bat
. Обратите внимание, что пробелов до и после знака =
быть не должно.
Затем мы настраиваем переменные для Jupyter:
JUPYTER_CONFIG_DIR
— папка для файлов конфигурации Jupyter (документация(en)),JUPYTER_DATA_DIR
— папка для устанавливаемых файлов данных (расширения и ядра (kernel
) для Jupyter) (документация(en)),JUPYTER_RUNTIME_DIR
— папка для исполняемых файлов Jupyter (runtime files
) (документация(en)),IPYTHONDIR
— папка для файлов конфигурации IPython (документация(en)),MPLCONFIGDIR
— папка, где Matplotlib хранит свои настройки и кэш (документация(en)).
Если вы планируете создавать анимации с Matplotlib, вам понадобится FFMPEG(ru). Я скачиваю(en) zip архив FFMPEG, распаковываю его содержание C:DevJupyterdistappsffmpeg
.
Строка, которая начинается с REM
— комментарий. Matplotlib почему-то ищет FFMPEG только в %PATH%
. Я записываю путь к FFMPEG в начало %PATH
, а не в его конец, чтобы при поиске первым нашёлся тот FFMPEG, который я положил в distapps
.
Создание файла для запуска Jupyter с настройками пользователя
В папке C:DevJupyterdist
создайте файл run_jupyter_notebook.bat
следующего содержания:
@echo off
call %~dp0setenv.bat
call %~dp0pyenv3.7-win64Scriptsjupyter-notebook.exe --notebook-dir=%1
Аналогично, в папке C:DevJupyterdist
создайте файл run_jupyter_lab.bat
следующего содержания:
@echo off
call %~dp0setenv.bat
call %~dp0pyenv3.7-win64Scriptsjupyter-lab.exe --notebook-dir=%1
Каждый из этих файлов сначала выполняет setenv.bat
, т.е. настраивает переменные окружения, потом запускает Jupyte Notebook или Jupyter Lab и указывает ему, где папка с нашими файлами для проекта.
Предположим, что есть папка D:my-projects
, в которой мы будем хранить файлы Jupyter Notebook или Lab. В этой папке создайте ярлыки на файлы run_jupyter_notebook.bat
и run_jupyter_lab.bat
. После этого в обязательном порядке откройте свойства каждого из этих ярлыков и сделайте пустой строку «Рабочая папка». Если вы этого не сделаете — Jupyter не увидит вашу папку!
После того, как это сделали, можете кликнуть дважды по любому из ярлыков. Сначала появится новое окно командной строки, потом откроется браузер по умолчанию и в нём запустится Jupyter Notebook или Lab в новой вкладке. Поздравляю: квест пройден!
Дополнительные файлы для выполнения служебных действий
Для Jupyter Notebook написаны расширения (о них будет подробнее в части 2). Но их недостаточно установить. Их ещё надо активировать. Согласно документации, вам нужно сделать следующее (не выполняйте эту команду!):
jupyter nbextension enable <nbextension require path>
Но мы не можем выполнить команду в таком виде, потому что настройки окажутся вне портативной сборки. Мы должны сделать иначе:
C:DevJupyterdistsetenv.bat
C:DevJupyterdistpyenv3.7-win64Scriptsjupyter.exe nbextension enable <nbextension require path>
Чтобы упростить себе задачу, мы можем в папке C:DevJupyterdist
создать файл enable_extension.bat
следующего содержания:
@echo off
REM Enable extension in Jupyter Notebook.
REM Example:
REM enable_extension.bat widgetsnbextension
call %~dp0setenv.bat
call %~dp0pyenv3.7-win64Scriptsjupyter-nbextension.exe enable %1
В итоге наша запись в окне командной строки сократится и станет такой:
C:DevJupyterdistenable_extension.bat <nbextension require path>
Если вам время от времени в окне команд нужно запускать различные действия с jupyter
, можно создать в папке C:DevJupyterdist
файл jupyter.bat
следующего содержания:
@echo off
call %~dp0setenv.bat
call %~dp0pyenv3.7-win64Scriptsjupyter.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
Аналогично можно сделать для запуска IPython
и других случаев.
Заключение
Часть 1 подошла к концу. Мы создали полностью портативную и переносимую сборку Jupyter и можем работать с файлами, которые лежат в нужной нам папке. Для этого создаём ярлыки на run_jupyter_notebook.bat
и run_jupyter_lab.bat
, в свойствах ярлыков обязательно очищаем строку Рабочая папка», и всё готово к работе.
В части 2 будут рассмотрены различные вопросы кастомизации Jupyter Notebook, Jupyter Lab и Matplotlib. Научимся подключать расширения в Jupyter Notebook и Jupyter Lab, настраивать сочетания клавиш, размер шрифта и прочие настройки, напишем свои «магические команды».
Если у вас остались вопросы, но нет аккаунта на Хабре, вот мои контакты:
ВК: https://vk.me/sindzicat
Telegram: https://t.me/sindzicat
E-mail: sh.andr.gen@yandex.ru
Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations, and narrative text. Uses include data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.
Jupyter has support for over 40 different programming languages and Python is one of them. Python is a requirement (Python 3.3 or greater, or Python 2.7) for installing the Jupyter Notebook itself.
Jupyter Notebook can be installed by using either of the two ways described below:
- Using Anaconda:
Install Python and Jupyter using the Anaconda Distribution, which includes Python, the Jupyter Notebook, and other commonly used packages for scientific computing and data science. To install Anaconda, go through How to install Anaconda on windows? and follow the instructions provided. -
Using PIP:
Install Jupyter using the PIP package manager used to install and manage software packages/libraries written in Python. To install pip, go through How to install PIP on Windows? and follow the instructions provided.
Installing Jupyter Notebook using Anaconda:
Anaconda is an open-source software that contains Jupyter, spyder, etc that are used for large data processing, data analytics, heavy scientific computing. Anaconda works for R and python programming language. Spyder(sub-application of Anaconda) is used for python. Opencv for python will work in spyder. Package versions are managed by the package management system called conda.
To install Jupyter using Anaconda, just go through the following instructions:
Launching Jupyter:
Installing Jupyter Notebook using pip:
PIP is a package management system used to install and manage software packages/libraries written in Python. These files are stored in a large “on-line repository” termed as Python Package Index (PyPI).
pip uses PyPI as the default source for packages and their dependencies.
To install Jupyter using pip, we need to first check if pip is updated in our system. Use the following command to update pip:
python -m pip install --upgrade pip
After updating the pip version, follow the instructions provided below to install Jupyter:
- Command to install Jupyter:
python -m pip install jupyter
- Beginning Installation:
- Downloading Files and Data:
- Installing Packages:
- Finished Installation:
Launching Jupyter:
Use the following command to launch Jupyter using command-line:
jupyter notebook
Jupyter Notebook
The Jupyter notebook is a web-based notebook environment for interactive
computing.
Maintained versions
We maintain the two most recently released major versions of Jupyter Notebook, Notebook v5 and Classic Notebook v6. After Notebook v7.0 is released, we will no longer maintain Notebook v5. All Notebook v5 users are strongly advised to upgrade to Classic Notebook v6 as soon as possible.
The Jupyter Notebook project is currently undertaking a transition to a more modern code base built from the ground-up using JupyterLab components and extensions.
There is new stream of work which was submitted and then accepted as a Jupyter Enhancement Proposal (JEP) as part of the next version (v7): https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html
There is also a plan to continue maintaining Notebook v6 with bug and security fixes only, to ease the transition to Notebook v7: jupyter/notebook-team-compass#5 (comment)
Notebook v7
The next major version of Notebook will be based on:
- JupyterLab components for the frontend
- Jupyter Server for the Python server
This represents a significant change to the jupyter/notebook
code base.
To learn more about Notebook v7: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html
Classic Notebook v6
Maintainance and security-related issues are now being addressed in the 6.4.x
branch.
A 6.5.x
branch will be soon created and will depend on nbclassic
for the HTML/JavaScript/CSS assets.
New features and continuous improvement is now focused on Notebook v7 (see section above).
If you have an open pull request with a new feature or if you were planning to open one, we encourage switching over to the Jupyter Server and JupyterLab architecture, and distribute it as a server extension and / or JupyterLab prebuilt extension. That way your new feature will also be compatible with the new Notebook v7.
Jupyter notebook, the language-agnostic evolution of IPython notebook
Jupyter notebook is a language-agnostic HTML notebook application for
Project Jupyter. In 2015, Jupyter notebook was released as a part of
The Big Split™ of the IPython codebase. IPython 3 was the last major monolithic
release containing both language-agnostic code, such as the IPython notebook,
and language specific code, such as the IPython kernel for Python. As
computing spans across many languages, Project Jupyter will continue to develop the
language-agnostic Jupyter notebook in this repo and with the help of the
community develop language specific kernels which are found in their own
discrete repos.
- The Big Split™ announcement
- Jupyter Ascending blog post
Installation
You can find the installation documentation for the
Jupyter platform, on ReadTheDocs.
The documentation for advanced usage of Jupyter notebook can be found
here.
For a local installation, make sure you have
pip installed and run:
Usage — Running Jupyter notebook
Running in a local installation
Launch with:
Running in a remote installation
You need some configuration before starting Jupyter notebook remotely. See Running a notebook server.
Development Installation
See CONTRIBUTING.md
for how to set up a local development installation.
Contributing
If you are interested in contributing to the project, see CONTRIBUTING.md
.
Community Guidelines and Code of Conduct
This repository is a Jupyter project and follows the Jupyter
Community Guides and Code of Conduct.
Resources
- Project Jupyter website
- Online Demo at jupyter.org/try
- Documentation for Jupyter notebook
- Korean Version of Installation
- Documentation for Project Jupyter [PDF]
- Issues
- Technical support — Jupyter Google Group
Jupyter Notebook — это среда разработки для написания и выполнения кода Python. Некоммерческая организация Project Jupyter с открытым исходным кодом поддерживает программное обеспечение. Он состоит из последовательности ячеек, каждая из которых содержит небольшой пример кода или документацию в формате Markdown. Разработчики могут выполнить ячейку и увидеть ее вывод сразу под кодом. Гениальный дизайн создает мгновенную петлю обратной связи, позволяя программисту запускать свой код и вносить в него соответствующие изменения.
Ячейки Jupyter Notebook также поддерживают аннотации, аудиофайлы, видео, изображения, интерактивные диаграммы и многое другое. Это еще одно важное преимущество программного обеспечения; вы можете рассказать историю с вашим кодом. Читатели могут видеть шаги, которые вы выполнили, чтобы получить результат.
Вы можете импортировать пакеты Python, такие как pandas, NumPy или TensorFlow, прямо в Блокнот.
Jupyter Notebook – это веб-оболочка для Ipython (ранее называлась IPython Notebook). Это веб-приложение с открытым исходным кодом, которое позволяет создавать и обмениваться документами, содержащими живой код, уравнения, визуализацию и разметку.
Первоначально IPython Notebook ограничивался лишь Python в качестве единственного языка. Jupyter Notebook позволил использовать многие языки программирования, включая Python, R, Julia, Scala и F#.
Установка/инсталляция Jupyter Notebook — pip3 install jupyter
Install Jupyter Notebook на Ubuntu 20.14
Установка классического блокнота Jupyter без виртуальной среды осуществляется очень просто. Для этого необходимо запустить 2 команды:
pip install notebook
После этого на вашей рабочей машине установится jupyter notebook. Теперь его необходимо запустить командой:
jupyter notebook
Откроется окно по адресу localhost:8888/
Install Jupyter Notebook на Windows
Аналогично без виртуальной среды блокнот Jupyter можно установить и на винду. Запускаем команду:
pip install notebook
и после завершения установки запускаем команду:
jupyter-notebook
Установка Jupyter Notebook в Docker через Docker-Compose
todo
Установка Jupyter Notebook через virtual env на Windows
Создаем директорию проекта, например:
D:#python##envjupyter
Далее в этой директории создаем виртуальную среду с помощью команды:
python3 -m venv venv
или
python -m venv venv
Далее переходим в директорию D:#python##envjupytervenvScripts и запускаем activate. Должна активироваться среда venv:
D:#python##envjupytervenvScripts>activate (venv) D:#python##envjupytervenvScripts>
Далее запустите в активированной виртуальной среде venv установку jupyter notebook:
(venv) D:#python##envjupytervenvScripts>pip install notebook Collecting notebook Using cached notebook-6.4.10-py3-none-any.whl (9.9 MB) Collecting jupyter-client>=5.3.4 Downloading jupyter_client-7.2.2-py3-none-any.whl (130 kB) |████████████████████████████████| 130 kB 128 kB/s Collecting nbconvert>=5 Using cached nbconvert-6.4.5-py3-none-any.whl (561 kB) ..... ..... ..... Installing collected packages: ..... Successfully installed .....
После завершения установки внутри venv нужно подняться в корень директории jupyter и запустить jupyter-notebook:
(venv) D:#python##envjupytervenvScripts>cd .. (venv) D:#python##envjupytervenv>cd .. (venv) D:#python##envjupyter>jupyter-notebook [I 06:14:46.674 NotebookApp] Serving notebooks from local directory: D:#python##envjupyter [I 06:14:46.674 NotebookApp] Jupyter Notebook 6.4.10 is running at: [I 06:14:46.678 NotebookApp] http://localhost:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1 [I 06:14:46.681 NotebookApp] or http://127.0.0.1:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1 [I 06:14:46.682 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 06:14:46.835 NotebookApp] To access the notebook, open this file in a browser: file:///C:/Users/Ivan/AppData/Roaming/jupyter/runtime/nbserver-1952-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1 or http://127.0.0.1:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1
Выглядит это так:
Откроется окно в браузере:
Повторный запуск среды осуществляется из виртуальной среды (сначала ее нужно активировать).
Установка Jupyter Notebook через virtual env на Ubuntu 20.14
# Создаем директорию проекта с виртуальной средой mkdir jupyter-env # Переходим внутрь проекта cd jupyter-env # Создаем среду myenv python3 -m venv myenv # Активируем среду source myenv/bin/activate # Запускаем установку jupyter pip install notebook # Запускаем jupyter notebook внутри venv jupyter notebook
Как устроен Jupyter Notebook. Как работает Jupyter Notebook
Общий вид Jupyter Notebook
Сначала пользователь взаимодействует с браузером, после чего на сервер Notebook отправляется запрос. Это может быть запрос HTTP или WebSocket.
Если код пользователя должен быть выполнен, сервер ноутбука отправляет его ядру (kernel) в сообщениях ZeroMQ. Ядро возвращает результаты выполнения.
Затем сервер Notebook возвращает пользователю HTML-страницу. Когда пользователь сохраняет документ, он отправляется из браузера на сервер Notebook. Сервер сохраняет его на диске в виде файла JSON с .ipynb расширением. Этот файл блокнота содержит код, выходные данные и примечания в формате markdown.
Ядро (Kernel) ничего не знает о документе блокнота: оно просто получает отправленные ячейки кода для выполнения, когда пользователь запускает их.
Блокноты Jupyter — это структурированные данные, которые представляют ваш код, метаданные, контент и выходные данные.
IPython Kernel (Ядро IPython)
Когда мы обсуждаем IPython, мы говорим о двух основных ролях:
- Terminal IPython как знакомый REPL.
- Ядро IPython, которое обеспечивает вычисления и связь с внешними интерфейсами, такими как ноутбук.
REPL – это форма организации простой интерактивной среды программирования в рамках средств интерфейса командной строки (REPL, от англ. Read-Eval-Print-Loop — цикл «чтение — вычисление — вывод»), которая поставляется вместе с Python. Чтобы запустить IPython, просто выполните команду ipython из командной строки/терминала.
Terminal IPython
Когда вы набираете ipython, вы получаете исходный интерфейс IPython, работающий в терминале. Он делает что-то вроде этого (упрощенная модель):
while True: code = input(">>> ") exec(code)
Эту модель часто называют REPL или Read-Eval-Print-Loop.
IPython Kernel
Все остальные интерфейсы — notebook, консоль Qt, ipython console в терминале и сторонние интерфейсы — используют Python Kernel.
Python Kernel — это отдельный процесс, который отвечает за выполнение пользовательского кода и такие вещи, как вычисление possible completions (возможных завершений). Внешние интерфейсы, такие как блокнот или консоль Qt, взаимодействуют с ядром IPython, используя сообщения JSON, отправляемые через сокеты ZeroMQ (протокол, используемый между интерфейсами и ядром IPython).
Основной механизм выполнения ядра используется совместно с терминалом IPython:
Jupyter Lab
Проект Jupyter приобрел большую популярность не только среди специалистов по данным, но и среди инженеров-программистов. На тот момент Jupyter Notebook был предназначен не только для работы с ноутбуком, поскольку он также поставлялся с веб-терминалом, текстовым редактором и файловым браузером. Все эти компоненты не были объединены вместе, и сообщество пользователей начало выражать потребность в более интегрированном опыте.
На конференции SciPy 2016 был анонсирован проект JupyterLab. Он был описан как естественная эволюция интерфейса Jupyter Notebook.
Кодовая база Notebook устарела, и ее становилось все труднее расширять. Стоимость поддержки старой кодовой базы и реализации новых функций поверх нее постоянно росла.
Разработчики учли весь опыт работы с Notebook в JupyterLab, чтобы создать надежную и чистую основу для гибкого интерактивного взаимодействия с компьютером и улучшенного пользовательского интерфейса.
Ценность Jupyter Notebook/JupyterLab для аналитиков данных
Разница между профессией data analyst/data scientist от разработки ПО заключается в отсутствии чёткого ТЗ на старте. Правильная постановка задачи в сфере анализа данных — это уже половина решения.
Первым этапом производится детальный анализ Initial Data (исходных данных) или Exploratory Data Analysis (Разведочный анализ данных), затем выдвигается одна или несколько гипотез. Эти шаги требуют значительных временных ресурсов.
Поэтому, понимание, как организовать процесс разработки (что нужно делать в первую очередь и чем можно будет пренебречь или исключить), начинает приходить во время разработки.
Исходя из этих соображений тратить силы на скурпулёзное и чистый код, git и т.д. бессмысленно — в первую очередь становится важным быстро создавать прототипы решений, ставить эксперименты над данными. Помимо этого, достигнутые результаты и обнаруженные инсайты или необычные наблюдения над данными приходится итерационно презентовать коллегам и заказчикам (внешним или внутренним). Jupyter Notebook или JupyterLab позволяет выполнять описанные задачи с помощью доступного функционала без дополнительных интеграций:
По факту, JupyterLab — это лабораторный журнал 21 века с элементами интерактивности, в котором вы можете оформить результаты работы с данными в формате markdown с использованием формул из latex. Также в JupyterLab можно писать и запускать код, вставлять в отчет картинки, отрисовывать графики, таблицы, дашборды.
Установка JupyterLab на Ubuntu 20.14
Установка производится одной командой
pip install jupyterlab
После инсталляции запустите команду
jupyter-lab
И откроется интерфейс:
Установка JupyterLab на Windows
Инсталляция и запуск на винде производится аналогично, как и на Ubuntu, командой pip instal jupyterlab
.
В чем разница между Jupyter Notebook и JupyterLab?
Jupyter Notebook — это интерактивная вычислительная среда с веб-интерфейсом для создания документов Jupyter Notebook. Он поддерживает несколько языков, таких как Python (IPython), Julia, R и т.д., и в основном используется для анализа данных, визуализации данных и дальнейших интерактивных исследовательских вычислений.
JupyterLab — это пользовательский интерфейс нового поколения, включая ноутбуки. Он имеет модульную структуру, в которой вы можете открыть несколько записных книжек или файлов (например, HTML, Text, Markdowns и т.д.) в виде вкладок в одном окне. Он предлагает больше возможностей, подобных IDE.
Новичку я бы посоветовал начать с Jupyter Notebook, так как он состоит только из файлового браузера и представления редактора (Notebook). Это проще в использовании. Если вам нужны дополнительные функции, переключитесь на JupyterLab. JupyterLab предлагает гораздо больше функций и улучшенный интерфейс, который можно расширить с помощью расширений: JupyterLab Extensions.
Начиная с версии 3.0, JupyterLab также поставляется с визуальным отладчиком, который позволяет интерактивно устанавливать точки останова, переходить к функциям и проверять переменные.
JupyterLab — это совершенно фантастический инструмент как для создания plotly фигур, так и для запуска полных приложений Dash как встроенных, в виде вкладок, так и внешних в браузере.
Основы работы и обзор функциональности Jupyter Notebook
Из чего состоит Jupiter Notebook
Если щелкнуть по файлу с расширением .ipynb, откроется страница с Jupiter Notebook.
Отображаемый Notebook представляет собой HTML-документ, который был создан Jupyter и IPython. Он состоит из нескольких ячеек, которые могут быть одного из трех типов:
- Сode (активный программный код),
- Markdown (текст, поясняющий код, более развернутый, чем комментарий),
- Raw NBConvert (пассивный программный код).
Jupyter запускает ядро IPython для каждого Notebook.
Ячейки, содержащие код Python, выполняются внутри этого ядра и результаты добавляются в тетрадку в формате HTML.
Двойной щелчок по любой из этой ячеек позволит отредактировать ее. По завершении редактирования содержимого ячейки, нажмите Shift + Enter, после чего Jupyter/IPython проанализирует содержимое и отобразит результаты.
Если выполняемая ячейка является ячейкой кода, это приведет к выполнению кода в ячейке и отображению любого вывода непосредственно под ним. На это указывают слова «In» и «Out», расположенные слева от ячеек.
Магические функции Jupiter Notebook
Все magic-функции (их еще называют magic-командами) начинаются
- со знака %, если функция применяется к одной строке,
- и %%, если применяется ко всей ячейке Jupyter.
Чтобы получить представление о времени, которое потребуется для выполнения функции, приведенной выше, мы воспользуемся функцией %timeit.
%timeit
%timeit – это magic-функция, созданная специально для работы с тетрадками Jupyter. Она является полезным инструментом, позволяющим сравнить время выполнения различных функций в одной и той же системе для одного и того же набора данных.
%matplotlib inline
%matplotlib inline позволяет выводит графики непосредственно в тетрадке.
На экранах с высоким разрешением типа Retina графики в тетрадках Jupiter по умолчанию выглядят размытыми, поэтому для улучшения резкости используйте
%config InlineBackend.figure_format = 'retina'
после %matplotlib inline.
jupyter markdown
туду
jupyter server
туду
jupyter config
туду
jupyter hub
JupyterHub: позволяет предоставлять нескольким пользователям (группам сотрудников) доступ к Notebook и другим ресурсам. Это может быть полезно для студентов и компаний, которые хотят, чтобы группа (группы) имела доступ к вычислительной среде и ресурсам и использовала их без необходимости установки и настройки. Управление которыми могут осуществлять системные администраторы. Доступ к отдельным блокнотам и JupyterLab можно получить через Hub. Hub может работать в облаке или на собственном оборудовании группы.
jupyter команды
туду
pycharm jupyter
туду
Виджеты Jupyter
Виджеты можно использовать для интерактивных элементов в блокнотах (например, ползунок).
Jupyter Widgets — это событийные объекты Python, которые имеют представление в браузере, часто в виде элемента управления, такого как ползунок, текстовое поле и т. д.
Вы можете использовать виджеты для создания интерактивных графических интерфейсов для своих ноутбуков.
Вы также можете использовать виджеты для синхронизации информации с сохранением состояния и без сохранения состояния между Python и JavaScript.
Чтобы использовать структуру виджетов, вам необходимо импортировать файлы ipywidgets
.
Почему отображение одного и того же виджета дважды работает?
Виджеты представлены в бэкенде одним объектом. Каждый раз, когда отображается виджет, во внешнем интерфейсе создается новое представление того же объекта. Эти представления называются представлениями.
Несколько самых популярных виджетов:
Чтобы начать использовать библиотеку, нам нужно установить расширение ipywidgets. Для pip это будет двухэтапный процесс:
- установить и
- включить
pip install ipywidgets jupyter nbextension enable --py widgetsnbextension
Tips & Tricks / Советы, рекомендации и фишки при работе с Jupyter Notebook
todo
Подборка видео по Jupyter
Как использовать Jupyter (ipython-notebook) на 100%
Jupyter Notebook Tutorial (Eng)
- 00:00 Introduction
- 01:35 Jupyter notebook example
- 04:11 Installing Python and Jupyter notebooks
- 09:23 Launching Jupyter notebooks
- 11:08 Basic notebook functionality
- 20:58 The kernel, and variables
- 28:38 Other notebook functionality
- 34:45 The menu
- 35:52 Jupyter notebook keyboard shortcuts
- 36:57 Load and display data using pandas
- 40:33 Using terminal commands inside a Jupyter notebook
- 42:30 Jupyter notebook magic commands
- 45:07 Other features outside of the notebooks
- 46:41 Shutting down Jupyter notebooks
- 48:02 Jupyter notebook extensions and other libraries
- 52:47 Conclusion, and thank you
Jupyterlab — STOP Using Jupyter Notebook! Here’s the Better Tool
…
Все курсы > Программирование на Питоне > Занятие 14
Программа Jupyter Notebook — это локальная программа, которая открывается в браузере и позволяет интерактивно исполнять код на Питоне, записанный в последовательности ячеек.
Облачной версией Jupyter Notobook является программа Google Colab, которой мы уже давно пользуемся на курсах машинного обучения. Если вы проходили мои занятия, то в работе с этой программой для вас не будет почти ничего нового.
Способ 1. Если на вашем компьютере уже установлен Питон, то установить Jupyter Notebook можно через менеджер пакетов pip.
Способ 2 (рекомендуется). Кроме того, Jupyter Notebook входит в дистрибутив Питона под названием Anaconda.
На сегодняшнем занятии мы рассмотрим именно второй вариант установки.
Anaconda
Anaconda — это дистрибутив Питона и репозиторий пакетов, специально предназначенных для анализа данных и машинного обучения.
Основу дистрибутива Anaconda составляет система управления пакетами и окружениями conda.
Conda можно управлять двумя способами, а именно через Anaconda Prompt — программу, аналогичную командной строке Windows, или через Anaconda Navigator — понятный графический интерфейс.
Кроме того, в дистрибутив Anaconda входит несколько полезных программ:
- Jupyter Notebook и JupyterLab — это программы, позволяющие исполнять код на Питоне (и, как мы увидим, на других языках) и обрабатывать данные.
- Spyder и PyCharm представляют собой так называемую интегрированную среду разработки (Integrated Development Environment, IDE). IDE — это редактор кода наподобие программы Atom или Sublime Text с дополнительными возможностями автодополнения, компиляции и интерпретации, анализа ошибок, отладки (debugging), подключения к базам данных и др.
- RStudio — интегрированная среда разработки для программирования на R.
На схеме структура Anaconda выглядит следующим образом:
Установка дистрибутива Anaconda на Windows
Шаг 1. Скачайте Anaconda⧉ с официального сайта.
Шаг 2. Запустите установщик.
На одном из шагов установки вам предложат поставить две галочки, в частности (1) добавить Anaconda в переменную path и (2) сделать дистрибутив Anaconda версией, которую Windows обнаруживает по умолчанию.
Не отмечайте ни один из пунктов!
Так вы сможете использовать два дистрибутива Питона, первый дистрибутив мы установили на прошлом занятии, второй — сейчас.
Как запустить Jupyter Notebook
После того как вы скачали и установили Anaconda, можно переходить к запуску ноутбука.
Шаг 1. Откройте Anaconda Navidator
Открыть Anaconda Navigator можно двумя способами.
Способ 1. Запуск из меню «Пуск». Просто перейдите в меню «Пуск» и выберите Anaconda Navigator.
Способ 2. Запуск через Anaconda Prompt. Также из меню «Пуск» откройте терминал Anaconda Prompt.
Введите команду
anaconda-navigator.
В результате должно появиться вот такое окно.
Шаг 2. Откройте Jupyter Notebook
Теперь выберите Jupyter Notebook и нажмите Launch («Запустить»).
Замечу, что Jupyter Notebook можно открыть не только из Anaconda Navigator, но и через меню «Пуск», а также введя в терминале Anaconda Prompt команду
jupyter-notebook.
В результате должен запуститься локальный сервер, и в браузере откроется перечень папок вашего компьютера.
Шаг 3. Выберите папку и создайте ноутбук
Выберите папку, в которой хотите создать ноутбук. В моем случае я выберу Рабочий стол (Desktop).
Теперь в правом верхнем углу нажмите New → Python 3.
Мы готовы писать и исполнять код точно также, как мы это делаем в Google Colab.
Импортируем библиотеку Numpy и создадим массив.
Шаг 4. Сохраните ноутбук и закройте Jupyter Notebook
Переименуйте ноутбук в mynotebook (для этого, как и в Google Colab, отредактируйте само название непосредственно в окне ноутбука). Сохранить файл можно через File → Save and Checkpoint.
Обратите внимание, помимо файла mynotebook.ipynb, Jupyter Notebook создал скрытую папку .ipynb_checkpoints. В ней хранятся файлы, которые позволяют вернуться к предыдущей сохраненной версии ноутбука (предыдущему check point). Сделать это можно, нажав File → Revert to Checkpoint и выбрав дату и время предыдущей сохраненной версии кода.
Когда вы закончили работу, закройте вкладку с ноутбуком. Остается прервать работу локального сервера, нажав Quit в правом верхнем углу.
Особенности работы
Давайте подробнее поговорим про возможности Jupyter Notebook. Снова запустим только что созданный ноутбук любым удобным способом.
Код на Python
В целом мы пишем обычный код на Питоне.
Вкладка Cell
Для управления запуском или исполнением ячеек можно использовать вкладку Cell.
Здесь мы можем, в частности:
- Запускать ячейку и оставаться в ней же через Run Cells
- Исполнять все ячейки в ноутбуке, выбрав Run All
- Исполнять все ячейки выше (Run All Above) или ниже текущей (Run All Below)
- Очистить вывод ячеек, нажав All Output → Clear
Вкладка Kernel
Командами вкладки Kernel мы управляем ядром (kernel) или вычислительным «движком» ноутбука.
В этой вкладке мы можем, в частности:
- Прервать исполнение ячейки командой Interrupt. Это бывает полезно, если, например, исполнение кода занимает слишком много времени или в коде есть ошибка и исполнение кода не прервется самостоятельно.
- Перезапустить kernel можно командой Restart. Кроме того, можно
- очистить вывод (Restart & Clear Output) и
- заново запустить все ячейки (Restart & Run All)
Несколько слов про то, что такое ядро и как в целом функционирует Jupyter Notebook.
Пользователь взаимодействует с ноутбуком через браузер. Браузер в свою очередь отправляет запросы на сервер. Функция сервера заключается в том, чтобы загружать ноутбук и сохранять внесенные изменения в формате JSON с расширением .ipynb. Одновременно, сервер обращается к ядру в тот момент, когда необходимо обработать код на каком-либо языке (например, на Питоне).
Такое «разделение труда» между браузером, сервером и ядром позволяет во-первых, запускать Jupyter Notebook в любой операционной системе, во-вторых, в одной программе исполнять код на нескольких языках, и в-третьих, сохранять результат в файлах одного и того же формата.
Возможность программирования на нескольких языках (а значит использование нескольких ядер) мы изучим чуть позже, а пока посмотрим как устанавливать новые пакеты для Питона внутри Jupyter Notebook.
Установка новых пакетов
Установить новые пакеты в Anaconda можно непосредственно в ячейке, введя
!pip install <package_name>. Например, попробуем установить Numpy.
Система сообщила нам, что такой пакет уже установлен. Более того, мы видим путь к папке внутри дистрибутива Anaconda, в которой Jupyter «нашел» Numpy.
При подготовке этого занятия я использовал два компьютера, поэтому имя пользователя на скриншотах указано как user или dmvma. На вашем компьютере при указании пути к файлу используйте ваше имя пользователя.
В последующих разделах мы рассмотрим дополнительные возможности по установке пакетов через Anaconda Prompt и Anaconda Navigator.
По ссылке ниже вы можете скачать код, который мы создали в Jupyter Notebook.
Два Питона на одном компьютере
Обращу ваше внимание, что на данный момент на моем компьютере (как и у вас, если вы проделали шаги прошлого занятия) установлено два Питона, один с сайта www.python.org⧉, второй — в составе дистрибутива Anaconda.
Посмотреть на установленные на компьютеры «Питоны» можно, набрав команду
where python в Anaconda Prompt.
Указав полный или абсолютный путь (absolute path) к каждому из файлов python.exe, мы можем в интерактивном режиме исполнять код на версии 3.8 (установили с www.python.org) и на версии 3.10 (установили в составе Anaconda). При запуске файла python.exe из папки WindowsApps система предложит установить Питон из Microsoft Store.
В этом смысле нужно быть аккуратным и понимать, какой именно Питон вы используете и куда устанавливаете очередной пакет.
В нашем случае мы настроили работу так, чтобы устанавливать библиотеки для Питона с www.python.org через командную строку Windows, и устанавливать пакеты в Анаконду через Anaconda Prompt.
Убедиться в этом можно, проверив версии Питона через
python —version в обеих программах.
Теперь попробуйте ввести в них команду
pip list и сравнить установленные библиотеки.
Markdown в Jupyter Notebook
Вернемся к Jupyter Notebook. Помимо ячеек с кодом, можно использовать текстовые ячейки, в которых поддерживается язык разметки Markdown. Мы уже коротко рассмотрели этот язык на прошлом занятии, когда создавали пакет на Питоне.
По большому счету, с помощью несложных команд Markdown, вы говорите Jupyter как отформатировать ту или иную часть текста.
Рассмотрим несколько основных возможностей форматирования (для удобстства и в силу практически полного совпадения два последующих раздела приведены в ноутбуке Google Colab).
Откроем ноутбук к этому занятию⧉
Заголовки
Заголовки создаются с помощью символа решетки.
# Заголовок 1 ## Заголовок 2 ### Заголовок 3 #### Заголовок 4 ##### Заголовок 5 ###### Заголовок 6 |
Если перед первым символом решетки поставить знак , Markdown просто выведет символы решетки.
Абзацы
Абзацы отделяются друг от друга пробелами.
Мы также можем разделять абзацы прямой линией.
Выделение текста
**Полужирный стиль** *Курсив* ~~Перечеркнутый стиль~~ |
Форматирование кода и выделенные абзацы
Мы можем выделять код внутри строки или отдельным абзацем.
Отформатируем код `print(‘Hello world!’)` внутри строки и отдельным абзацем «` print(‘Hello world!’) «` |
Возможно выделение и текстовых абзацев ( так называемые blockquotes).
> Markdown позволяет форматировать текст без использования тэгов. > > Он был создан в 2004 году Джоном Грубером и Аароном Шварцем. |
Списки
Посмотрим на создание упорядоченных и неупорядоченных списков.
**Упорядоченный список** 1. Пункт 1 1. Пункт 2 (нумерация ведется автоматически) **Неупорядоченный список** * Пункт 1.1 * Пункт 2.1 * Пункт 2.2 * Пункт 3.1 * Пункт 3.2 * Пункт 1.2 |
Ссылки и изображения
Текст ссылки заключается в квадратные скобки, сама ссылка — в круглые.
[сайт проекта Jupyter](https://jupyter.org/) |
Изображение форматируется похожим образом.
![логотипы Jupyter и Python](https://www.dmitrymakarov.ru/wp-content/uploads/2022/05/jupyter-python.jpeg) |
Таблицы
| id | item | price | |— |———-| ——| | 01 | pen | 200 | | 02 | pencil | 150 | | 03 | notebook | 300 | |
Таблицы для Markdown бывает удобно создавать с помощью специального инструмента⧉.
Формулы на LaTeX
В текстовых полях можно вставлять формулы и математические символы с помощью системы верстки, которая называется LaTeX (произносится «латэк»). Они заключаются в одинарные или двойные символы $.
Если использовать одинарный символ $, то расположенная внутри формула останется в пределах того же абзаца. Например, запись
$ y = x^2 $ даст $ y = x^2 $.
В то время как
$$ y = x^2 $$ поместит формулу в новый абзац.
$$ y = x^2 $$
Одинарный символ добавляет пробел. Двойной символ \ переводит текст на новую строку.
$$ hat{y} = theta_0 + theta_1 x_1 + theta_2 x_2 + ... + theta_n x_n $$ |
Рассмотрим некоторые элементы синтаксиса LaTeX.
Форматирование текста
$ text{just text} $ $ textbf{bold} $ $ textit{italic} $ $ underline{undeline} $ |
Надстрочные и подстрочные знаки
hat $ hat{x} $ bar $ bar{x} $ vector $ vec{x} $ tilde $ tilde{x} $ superscript $ e^{ax + b} $ subscript $ A_{i, j} $ degree $ 90^{circ} $ |
Скобки
Вначале рассмотрим код для скобок в пределах высоты строки.
$$ (a+b) [a+b] {a+b} langle x+y rangle |x+y| |x+y| $$ |
Кроме того, с помощью
left(,
right), а также
left[,
right] и так далее можно увеличить высоту скобки. Сравните.
$$ left(frac{1}{2}right) qquad (frac{1}{2}) $$ |
Также можно использовать отдельные команды для скобок различного размера.
$$ big( Big( bigg( Bigg( big] Big] bigg] Bigg] big{ Big{ bigg{ Bigg{ $$ |
Дробь и квадратный корень
fraction $$ frac{1}{1+e^{—z}} $$ square root $ sqrt{sigma^2} $ |
Греческие буквы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|Uppercase | LaTeX |Lowercase | LaTeX | RU | |————— |———— |————— |———— |———— | |————— |———— |$alpha$ |alpha | альфа | |————— |———— |$beta$ |beta | бета | |$Gamma$ |Gamma |$gamma$ |gamma | гамма | |$Delta$ |Delta |$delta$ |delta | дельта | |————— |———— |$epsilon$ |epsilon | эпсилон | |————— |———— |$varepsilon$ |varepsilon | ———— | |————— |———— |$zeta$ |zeta | дзета | |————— |———— |$eta$ |eta | эта | |$Theta$ |Theta |$theta$ |theta | тета | |————— |———— |$vartheta$ |vartheta | ———— | |————— |———— |$iota$ |iota | йота | |————— |———— |$kappa$ |kappa | каппа | |$Lambda$ |Lambda |$lambda$ |lambda | лямбда | |————— |———— |$mu$ |mu | мю | |————— |———— |$nu$ |nu | ню | |$Xi$ |Xi |$xi$ |xi | кси | |————— |———— |$omicron$ |omicron | омикрон | |$Pi$ |Pi |$pi$ |pi | пи | |————— |———— |$varpi$ |varpi | ———— | |————— |———— |$rho$ |rho | ро | |————— |———— |$varrho$ |varrho | ———— | |$Sigma$ |Sigma |$sigma$ |sigma | сигма | |————— |———— |$varsigma$ |varsigma | ———— | |————— |———— |$tau$ |tau | тау | |$Upsilon$ |Upsilon |$upsilon$ |upsilon | ипсилон | |$Phi$ |Phi |$phi$ |phi | фи | |————— |———— |$varphi$ |varphi | ———— | |————— |———— |$chi$ |chi | хи | |$Psi$ |Psi |$psi$ |psi | пси | |$Omega$ |Omega |$omega$ |omega | омега | |
Латинские обозначения
$$ sin(—alpha) = —sin(alpha) cos(theta)=sin left( frac{pi}{2}—theta right) tan(x) = frac{sin(x)}{cos(x)} log_b(1) = 0 $$ |
Логические символы и символы множества
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
| LaTeX | symbol | | ——————————— | ————————————— | |Rightarrow | $ Rightarrow $ | |rightarrow | $ rightarrow $ | |longleftrightarrow | $ Leftrightarrow $ | |cap | $ cap $ | |cup | $ cup $ | |subset | $ subset $ | |in | $ in $ | |notin | $ notin $ | |varnothing | $ varnothing $ | |neg | $ neg $ | |forall | $ forall $ | |exists | $ exists $ | |mathbb{N} | $ mathbb{N} $ | |mathbb{Z} | $ mathbb{Z} $ | |mathbb{Q} | $ mathbb{Q} $ | |mathbb{R} | $ mathbb{R} $ | |mathbb{C} | $ mathbb{C} $ | |
Другие символы
| LaTeX | symbol | | ——————————— | ————————————— | | < | $ < $ | | leq | $ leq $ | | > | $ geq $ | | neq | $ neq $ | | approx | $ approx $ | | angle | $ angle $ | | parallel | $ parallel $ | | pm | $ pm $ | | mp | $ mp $ | | cdot | $ cdot $ | | times | $ times $ | | div | $ div $ | |
Кусочная функция и система уравнений
Посмотрим на запись функции sgn (sign function) средствами LaTeX.
$$ sgn(x) = left{ begin{array} 1 & mbox{if } x in mathbf{N}^* 0 & mbox{if } x = 0 —1 & mbox{else.} end{array} right. $$ |
Схожим образом записывается система линейных уравнений.
$$ left{ begin{matrix} 4x + 3y = 20 —5x + 9y = 26 end{matrix} right. $$ |
Горизонтальная фигурная скобка
$$ overbrace{ underbrace{a}_{real} + underbrace{b}_{imaginary} i} ^{textit{complex number}} $$ |
Предел, производная, интеграл
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Пределы: $$ lim_{x to +infty} f(x) $$ $$ lim_{x to —infty} f(x) $$ $$ lim_{x to с} f(x) $$ Производная (нотация Лагранжа): $$ f‘(x) $$ Частная производная (нотация Лейбница): $$ frac{partial f}{partial x} $$ Градиент: $$ nabla f(x_1, x_2) = begin{bmatrix} frac{partial f}{partial x_1} frac{partial f}{partial x_2} end{bmatrix} $$ Интеграл: $$int_{a}^b f(x)dx$$ |
Сумма и произведение
Сумма: $$ sumlimits_{i=1}^n a_{i} $$ $$sum_{i=1}^n a_{i} $$ Произведение: $$prod_{j=1}^m a_{j}$$ |
Матрица
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
Без скобок (plain): $$ begin{matrix} 1 & 2 & 3 a & b & c end{matrix} $$ Круглые скобки (parentheses, round brackets): $$ begin{pmatrix} 1 & 2 & 3 a & b & c end{pmatrix} $$ Квадратные скобки (square brackets): $$ begin{bmatrix} 1 & 2 & 3 a & b & c end{bmatrix} $$ Фигурные скобки (curly brackets, braces): $$ begin{Bmatrix} 1 & 2 & 3 a & b & c end{Bmatrix} $$ Прямые скобки (pipes): $$ begin{vmatrix} 1 & 2 & 3 a & b & c end{vmatrix} $$ Двойные прямые скобки (double pipes): $$ begin{Vmatrix} 1 & 2 & 3 a & b & c end{Vmatrix} $$ |
Программирование на R
Jupyter Notebook позволяет писать код на других языках программирования, не только на Питоне. Попробуем написать и исполнить код на R, языке, который специально разрабатывался для data science.
Вначале нам понадобится установить kernel для R. Откроем Anaconda Prompt и введем следующую команду
conda install -c r r-irkernel. В процессе установки система спросит продолжать или нет (Proceed ([y]/n)?). Нажмите y + Enter.
Откройте Jupyter Notebook. В списке файлов создайте ноутбук на R. Назовем его rprogramming.
После установки нового ядра и создания еще одного файла .ipynb схема работы нашего Jupyter Notebook немного изменилась.
Теперь мы готовы писать код на R. Мы уже начали знакомиться с этим языком, когда изучали парадигмы программирования. Сегодня мы рассмотрим основные типы данных и особенности синтаксиса.
Переменные в R
Числовые, строковые и логические переменные
Как и в Питоне, в R мы можем создавать числовые (numeric), строковые (character) и логические (logical) переменные.
# поместим число 42 в переменную numeric_var numeric_var = 42 # строку поместим в переменную text_var text_var <— ‘Hello world!’ # наконец присвоим значение TRUE переменной logical_var TRUE -> logical_var |
Для присвоения значений можно использовать как оператор
=, так и операторы присваивания
<— и
->. Обратите внимание, используя
-> мы можем поместить значение слева, а переменную справа.
Посмотрим на результат (в Jupyter Notebook можно обойтись без функции print()).
Выведем класс созданных нами объектов с помощью функции class().
class(numeric_var) class(text_var) class(logical_var) |
‘numeric’ ‘character’ ‘logical’ |
Тип данных можно посмотреть с помощью функции typeof().
typeof(numeric_var) typeof(text_var) typeof(logical_var) |
‘double’ ‘character’ ‘logical’ |
Хотя вывод этих функций очень похож, мы, тем не менее, видим, что классу numeric соответствует тип данных double (число с плавающей точкой с двумя знаками после запятой).
Числовые переменные: numeric, double, integer
По умолчанию, в R и целые числа, и дроби хранятся в формате double.
# еще раз поместим число 42 в переменную numeric_var numeric_var <— 42 # выведем тип данных typeof(numeric_var) |
Принудительно перевести 42 в целочисленное значение можно с помощью функции as.integer().
int_var <— as.integer(numeric_var) typeof(int_var) |
Кроме того, если после числа поставить L, это число автоматически превратится в integer.
Превратить integer обратно в double можно с помощью функций as.double() и as.numeric().
typeof(as.double(int_var)) typeof(as.numeric(42L)) |
Если число хранится в формате строки, его можно перевести обратно в число (integer или double).
text_var <— ’42’ typeof(text_var) |
typeof(as.numeric(text_var)) # можно также использовать as.double() typeof(as.integer(text_var)) |
Вектор
Вектор (vector) — это одномерная структура, которая может содержать множество элементов одного типа. Вектор можно создать с помощью функции c().
# создадим вектор с информацией о продажах товара в магазине за неделю (в тыс. рублей) sales <— c(24, 28, 32, 25, 30, 31, 29) sales |
С помощью функций length() и typeof() мы можем посмотреть соответственно общее количество элементов и тип данных каждого из них.
# посмотрим на общее количество элементов и тип данных каждого из них length(sales) typeof(sales) |
У вектора есть индекс, который (в отличие, например, от списков в Питоне), начинается с единицы.
При указании диапазона выводятся и первый, и последний его элементы.
Отрицательный индекс убирает элементы из вектора.
Именованный вектор (named vector) создается с помощью функции names().
# создадим еще один вектор с названиями дней недели days_vector <— c(‘Понедельник’, ‘Вторник’, ‘Среда’, ‘Четверг’, ‘Пятница’, ‘Суббота’, ‘Воскресенье’) days_vector |
‘Понедельник’ ‘Вторник’ ‘Среда’ ‘Четверг’ ‘Пятница’ ‘Суббота’ ‘Воскресенье’ |
# создадим именованный вектор с помощью функции names() names(sales) <— days_vector sales |
Выводить элементы именованного вектора можно не только по числовому индексу, но и по их названиям.
Список
В отличие от вектора, список (list) может содержать множество элементов различных типов.
# список создается с помощью функции list() list(‘DS’, ‘ML’, c(21, 24), c(TRUE, FALSE), 42.0) |
[[1]] [1] «DS» [[2]] [1] «ML» [[3]] [1] 21 24 [[4]] [1] TRUE FALSE [[5]] [1] 42 |
Матрица
Матрица (matrix) в R — это двумерная структура, содержащая одинаковый тип данных (чаще всего числовой). Матрица создается с помощью функции matrix() с параметрами data, nrow, ncol и byrow.
- data — данные для создания матрицы
- nrow и ncol — количество строк и столбцов
- byrow — параметр, указывающий заполнять ли элементы матрицы построчно (TRUE) или по столбцам (FALSE)
Рассмотрим несколько примеров. Cоздадим последовательность целых чисел (по сути, тоже вектор).
# для этого подойдет функция seq() sqn <— seq(1:9) sqn typeof(sqn) |
1 2 3 4 5 6 7 8 9 ‘integer’ |
Используем эту последовательность для создания двух матриц.
# создадим матрицу, заполняя значения построчно mtx <— matrix(sqn, nrow = 3, ncol = 3, byrow = TRUE) mtx |
# теперь создадим матрицу, заполняя значения по столбцам mtx <— matrix(sqn, nrow = 3, ncol = 3, byrow = FALSE) mtx |
Зададим названия для строк и столбцов второй матрицы.
# создадим два вектора с названиями строк и столбцов rows <— c(‘Row 1’, ‘Row 2’, ‘Row 3’) cols <— c(‘Col 1’, ‘Col 2’, ‘Col 3’) # используем функции rownames() и colnames(), # чтобы передать эти названия нашей матрице rownames(mtx) <— rows colnames(mtx) <— cols # посмотрим на результат mtx |
Посмотрим на размерность этой матрицы с помощью функции dim().
Массив
В отличие от матрицы, массив (array) — это многомерная структура. Создадим трехмерный массив размерностью 3 х 2 х 3. Вначале создадим три матрицы размером 3 х 2.
# создадим три матрицы размером 3 х 2, # заполненные пятерками, шестерками и семерками a <— matrix(5, 3, 2) b <— matrix(6, 3, 2) c <— matrix(7, 3, 2) |
Теперь соединим их с помощью функции array(). Передадим этой функции два параметра в форме векторов: данные (data) и размерность (dim).
arr <— array(data = c(a, b, c), # вектор с матрицами dim = c(3, 2, 3)) # вектор размерности print(arr) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
, , 1 [,1] [,2] [1,] 5 5 [2,] 5 5 [3,] 5 5 , , 2 [,1] [,2] [1,] 6 6 [2,] 6 6 [3,] 6 6 , , 3 [,1] [,2] [1,] 7 7 [2,] 7 7 [3,] 7 7 |
Факторная переменная
Факторная переменная или фактор (factor) — специальная структура для хранения категориальных данных. Вначале немного теории.
Как мы узнаем на курсе анализа данных, категориальные данные бывают номинальными и порядковыми. Номинальные категориальные (nominal categorical) данные представлены категориями, в которых нет естественного внутреннего порядка. Например, пол или цвет волос человека, марка автомобиля могут быть отнесены к определенным категориям, но не могут быть упорядочены.
Порядковые категориальные (ordinal categorical) данные наоборот обладают внутренним, свойственным им порядком. К таким данным относятся шкала удовлетворенности потребителей, класс железнодорожного билета, должность или звание, а также любая количественная переменная, разбитая на категории (например, низкий, средний и высокий уровень зарплат).
Посмотрим, как учесть такие данные с помощью R. Начнем с номинальных данных.
# предположим, что мы собрали данные о цветах нескольких автомобилей и поместили их в вектор color_vector <— c(‘blue’, ‘blue’, ‘white’, ‘black’, ‘yellow’, ‘white’, ‘white’) # преобразуем этот вектор в фактор с помощью функции factor() factor_color <— factor(color_vector) factor_color |
Как вы видите, функция factor() разбила данные на категории, при этом эти категории остались неупорядоченными. Посмотрим на класс созданного объекта.
Теперь поработаем с порядковыми данными.
# возьмем данные измерений температуры, выраженные категориями temperature_vector <— c(‘High’, ‘Low’, ‘High’,‘Low’, ‘Medium’, ‘High’, ‘Low’) # создадим фактор factor_temperature <— factor(temperature_vector, # указав параметр order = TRUE order = TRUE, # а также вектор упорядоченных категорий levels = c(‘Low’, ‘Medium’, ‘High’)) # посмотрим на результат factor_temperature |
Выведем класс созданного объекта.
class(factor_temperature) |
Добавлю, что количество элементов в каждой из категорий можно посмотреть с помощью функции summary().
summary(factor_temperature) |
Датафрейм
Датафрейм в R выполняет примерно ту же функцию, что и в Питоне. С помощью функции data.frame() создадим простой датафрейм, гда параметрами будут названия столбцов, а аргументами — векторы их значений.
df <— data.frame(city = c(‘Москва’, ‘Париж’, ‘Лондон’), population = c(12.7, 2.1, 8.9), country = c(‘Россия’, ‘Франция’, ‘Великобритания’)) df |
Доступ к элементам датафрейма можно получить по индексам строк и столбцов, которые также начинаются с единицы.
# выведем значения первой строки и первого столбца df[1, 1] |
# выведем всю первую строку df[1,] |
# выведем второй столбец df[,2] |
Получить доступ к столбцам можно и так.
Дополнительные пакеты
Как и в Питоне, в R мы можем установить дополнительные пакеты через Anaconda Prompt. Например, установим пакет ggplot2 для визуализации данных. Для этого введем команду
conda install r-ggplot2.
В целом команда установки пакетов для R следующая:
conda install r-<package_name>.
Продемонстрируем работу с этим пакетом с помощью несложного датасета mtcars.
# импортируем библиотеку datasets library(datasets) # загрузим датасет mtcars data(mtcars) # выведем его на экран mtcars |
Теперь импортируем установленную ранее библиотеку ggplot2.
Построим гистограмму по столбцу mpg (miles per galon, расход в милях на галлон топлива). Для построения гистограммы нам потребуется через «+» объединить две функции:
- функцию ggplot(), которой мы передадим наши данные и еще одну функцию aes(), от англ. aesthetics, которая свяжет ось x нашего графика и столбец данных mpg, а также
- функцию geom_histogram() с параметрами bins (количество интервалов) и binwidth (их ширина), которая и будет отвечать за создание гистограммы
# данными будет датасет mtcars, столбцом по оси x — mpg ggplot(data = mtcars, aes(x = mpg)) + # типом графика будет гистограмма с 10 интервалами шириной 5 миль на галлон каждый geom_histogram(bins = 10, binwidth = 5) |
Примерно также мы можем построить график плотности распределения (density plot). Только теперь мы передадим функции aes() еще один параметр
fill = as.factor(vs), который (предварительно превратив столбец в фактор через as.factor()) позволит разбить данные на две категории по столбцу vs. В этом датасете признак vs указывает на конфигурацию двигателя (расположение цилиндров), v-образное, v-shaped (vs == 0) или рядное, straight (vs == 1).
Кроме того, для непосредственного построения графика мы будем использовать новую функцию geom_density() с параметром alpha, отвечающим за прозрачность заполнения пространства под кривыми.
ggplot(data = mtcars, aes(x = mpg, fill = as.factor(vs))) + geom_density(alpha = 0.3) |
Дополнительно замечу, что к столбцам датафрейма можно применять множество различных функций, например, рассчитать среднее арифметическое или медиану с помощью несложных для запоминания mean() и median().
mean(mtcars$mpg) median(mtcars$mpg) |
Кроме того, мы можем применить уже знакомую нам функцию summary(), которая для количественного столбца выдаст минимальное и максимальное значения, первый (Q1) и третий (Q2) квартили, а также медиану и среднее значение.
Min. 1st Qu. Median Mean 3rd Qu. Max. 10.40 15.43 19.20 20.09 22.80 33.90 |
В файле ниже содержится созданный нами код на R.
Вернемся к основной теме занятия.
Подробнее про Anaconda
Conda
Программа conda, как уже было сказано, объединяет в себе систему управления пакетами (как pip) и, кроме того, позволяет создавать окружения.
Идея виртуального окружения (virtual environment) заключается в том, что если в рамках вашего проекта вы, например, используете определенную версию библиотеки Numpy и установка более ранней или более поздней версии приведет к сбоям в работе вашего кода, хорошим решением была бы изоляция нужной версии Numpy, а также всех остальных используемых вами библиотек. Именно для этого и нужно виртуальное окружение.
Рассмотрим, как мы можем устанавливать пакеты и создавать окружения через Anaconda Prompt и через Anaconda Navigator.
Anaconda Prompt
Про пакеты. По аналогии с pip, установленные (в текущем окружении) пакеты можно посмотреть с помощью команды
conda list.
Установить пакет можно с помощью команды
conda install <package_name>. Обновить пакет можно через
conda update <package_name>. Например, снова попробуем установить Numpy. о
Про окружения. По умолчанию мы работаем в базовом окружении (base environment). Посмотреть, какие в целом установлены окружения можно с помощью команды
conda info —envs.
Как вы видите, пока у нас есть только одно окружение. Давайте создадим еще одно виртуальное окружение и назовем его, например, waterfall.
Введите команду
conda create —name waterfall.
Введем две команды
- conda activate waterfall для активации нового окружения
- conda list для того, чтобы посмотреть установленные в нем пакеты
Как вы видите, в новом окружении нет ни одного пакета. Введем
conda search seaborn, чтобы посмотреть какие версии этого пакета доступны для скачивания.
Скачаем этот пакет через
conda install seaborn. Проверим установку с помощью
conda list.
Как вы видите, помимо seaborn было установлено множество других необходимых для работы пакета библиотек. Вернуться в базовое окружение можно с помощью команд
conda activate base или
conda deactivate.
Импорт модулей и переменная path
На прошлом занятии мы научились импортировать собственный модуль в командной строке Windows (cmd).
Посмотрим, отличается ли содержимое списка path для двух установленных версий Питона. Для этого в командной строке Windows и в Anaconda Prompt перейдем в интерактивный режим с помощью
python. Затем введем
Как мы видим, пути в переменной path будут отличаться и это нужно учитывать, если мы хотим локально запускать собственные модули.
Anaconda Navigator
Запускать программы, управлять окружениями и устанавливать необходимые библиотеки можно также через Anaconda Nagivator. На вкладке Home вы видите программы, которые можно открыть (launch) или установить (install) для текущего окружения.
На вкладке Environments отображаются созданные нами окружения (в частности, окружение waterfall, которое мы создали ранее) и содержащиеся в них пакеты.
В целом интерфейс интуитивно понятен, и так как мы уже познакомились с принципом создания окружений и установки в них дополнительных пакетов, уверен, работа с Anaconda Navigator сложностей не вызовет.
Прежде чем завершить, обратимся к еще одной программе для интерактивного программирования JupyterLab.
JupyterLab
JupyterLab — расширенная версия Jupyter Notebook, которая также входит в дистрибутив Anaconda. Запустить эту программу можно через Anaconda Navigator или введя команду
jupyter lab в Anaconda Prompt.
После запуска вы увидите вкладку Launcher, в которой можно создать новый ноутбук (Notebook) на Питоне или R, открыть консоль (Console) на этих языках, а также создать файлы в различных форматах (Other). Слева вы видите список папок компьютера.
В разделе Console нажмем на Python 3 (ipykernel). Введем несложный код (см. ниже) и исполним его, нажимая Shift + Enter.
Как вы видите, здесь мы можем писать код на Питоне так же, как мы это делали в командной строке Windows на прошлом занятии. Закроем консоль.
В файловой системе слева мы можем открывать уже созданные ноутбуки. Например, откроем ноутбук на R rprogramming.ipynb.
В левом меню на второй сверху вкладке мы видим открытые горизонтальные вкладки (Launcher и rprogramming.ipynb), а также запущенные ядра (kernels).
Консольные ядра (Console 1 и Console 2) можно открыть (по сути, мы снова запустим консоль).
Две оставшиеся вертикальные вкладки открывают доступ к автоматическому оглавлению (content) и расширениям (extensions).
Вкладки Run и Kernel в верхнем меню JupyterLab в целом аналогичны вкладкам Cell и Kernel в JupyterNotebook.
Подведем итог
На сегодняшнем занятии мы познакомились с программой Jupyter Notebook, а также изучили дистрибутив Anaconda, в состав которого входит эта программа.
Говоря о программе Jupyter Notebook, мы узнали про возможности работы с ячейками и ядром программы. Кроме того, мы познакомились с языком разметки Markdown и написанием формул с помощью языка верстки LaTeX.
После этого мы установили ядро для программирования на R и рассмотрели основы этого языка.
При изучении дистрибутива Anaconda мы позникомились с системой conda и попрактиковались в установке библиотек и создании окружений через Anaconda Prompt и Anaconda Navigator.
Наконец мы узнали про особенности программы JupyterLab.
Вопросы для закрепления
Вопрос. Что такое Anaconda?
Посмотреть правильный ответ
Ответ: Anaconda — это дистрибутив Питона (с репозиторием пакетов) и отдельной программой управления окружениями и пакетами conda. Пользователь может взаимодействовать с этой программой через терминал (Anaconda Prompt) и графический интерфейс (Anaconda Navigator).
Помимо этого, в дистрибутив Anaconda входят, среди прочих, программы Jupyter Notebook и JupyterLab.
Вопрос. Какой тип ячеек доступен в Jupyter Notebook?
Посмотреть правильный ответ
Ответ: в Jupyter Notebook есть два основных типа ячеек — ячейки для написания кода (в частности, на Питоне и R) и текстовые ячейки, поддерживающие Markdown и LaTeX.
Вопрос. Для чего нужно виртуальное окружение?
Посмотреть правильный ответ
Ответ: виртуальное окружение (virtual environment) позволяет установить и изолировать определенные версии Питона и его пакетов. Таким образом код, написанный с учетом конкретной версии Питона и дополнительных библиотек, исполнится без ошибок.
Ответы на вопросы
Вопрос. Можно ли исполнить код на R в Google Colab?
Ответ. Да, это возможно. Причем двумя способами.
Способ 1. Откройте ноутбук. Введите и исполните команду
%load_ext rpy2.ipython. В последующих ячейках введите
%R, чтобы в этой же строке написать код на R или
%%R, если хотите, чтобы вся ячейка исполнилась как код на R (так называемые магические команды).
В этом случае мы можем исполнять код на двух языках внутри одного ноутбука.
# введем магическую команду, которая позволит программировать на R %load_ext rpy2.ipython |
# команда %%R позволит Colab распознать ячейку как код на R %%R # кстати, числовой вектор можно создать просто с помощью двоеточия x <— 1:10 x |
# при этом ничто не мешает нам продолжать писать код на Питоне import numpy as np np.mean([1, 2, 3]) |
Приведенный выше код можно найти в дополнительных материалах⧉ к занятию.
Способ 2. Если вы хотите, чтобы весь код исполнялся на R (как мы это делали в Jupyter Notebook), создайте новый ноутбук используя одну из ссылок ниже:
- https://colab.research.google.com/#create=true&language=r⧉
- https://colab.to/r⧉
Теперь, если вы зайдете на вкладку Runtime → Change runtime type, то увидите, что можете выбирать между Python и R.
Выведем версию R в Google Colab.
‘R version 4.2.0 (2022-04-22)’ |
Посмотреть на установленные пакеты можно с помощью
installed.packages(). Созданный ноутбук Google Colab на R доступен по ссылке⧉.
Вопрос. Очень медленно загружается Anaconda. Можно ли что-то сделать?
Ответ. Можно работать через Anaconda Prompt, эта программа быстрее графического интерфейса Anaconda Navigator.
Кроме того, можно использовать дистрибутив Miniconda⧉, в который входит conda, Питон и несколько ключевых пакетов. Остальные пакеты устанавливаются вручную по мере необходимости.
Вопрос. Разве Jupyter не должен писаться через i, как Jupiter?
Ответ. Вы правы в том плане, что название Jupyter Notebook происходит не от планеты Юпитер, которая по-английски как раз пишется через i (Jupiter), а представляет собой акроним от названий языков программирования Julia, Python и R.
При этом, как утверждают разработчики⧉, слово Jupyter также отсылает к тетрадям (notebooks) Галилея, в которых он, в частности, документировал наблюдение за лунами Юпитера.
Вопрос. В каких еще программах можно писать код на Питоне и R?
Ответ. Таких программ несколько. Довольно удобно пользоваться облачным решением Kaggle. Там можно создавать как скрипты (scripts, в том числе RMarkdown Scripts), так и ноутбуки на Питоне и R. Подробнее можно почитать в документации⧉ на их сайте.
Вопрос. Можно ли создать виртуальное окружение каким-либо другим способом помимо программы conda?
Ответ. Да, можно. Вот здесь⧉ есть хорошая видео-инструкция.
Вот коротко какие шаги нужно выполнить.
Вначале убедитесь, что у вас уже установлен Питон. В нем по умолчанию содержится модуль venv, который как раз предназначен для создания виртуального окружения.
Шаг 1. Создайте папку с вашим проектом, например, пусть это будет папка webapp для веб-приложения на популярном фреймворке для Питона Django.
Шаг 2. В командной строке перейдите в папку webapp.
Затем введите команду для создания виртуального окружения.
По сути мы говорим Питону создать окружение djenv (название может быть любым) с помощью модуля venv. Переключатель (flag или switch)
-m подсказывает питону, что venv — это модуль, а не файл.
После выполнения этой команды создается папка djenv виртуального окружения.
Шаг 3. Активируем это виртуальное окружение следующей командой.
Здесь мы обращаемся к файлу activate внутри папки Scripts. Как вы видите, название окружения появилось слева от пути к папке.
Теперь через pip можно устанавливать пакеты, которые будут «видны» только внутри виртуального окружения djenv.
Шаг 4. Выйти из этого виртуального окружения можно с помощью команды deactivate. Если вам нужно удалить окружение, сначала деактивируйте его, а затем вручную удалите соответствующую папку.
На следующем занятии мы поговорим про такую важную тему, как регулярные выражения.
Содержание
- 1 Windows
- 1.1 Установка готового пакета
- 1.2 Установку вручную
- 1.3 Запуск IPython Notebook
- 2 Mac OS X и Linux
- 2.1 Mac OS
- 2.1.1 Установка Python через brew
- 2.1.2 Ручная установка Python
- 2.1.3 Сторонний туториал
- 2.2 Linux
- 2.3 Запуск IPython Notebook
- 2.4 Использование virtualenv
- 2.1 Mac OS
Windows
Установка готового пакета
Можно отдельно установить Python и все необходимые библиотеки и надстройки, однако это слишком долго. Поэтому воспользуемся уже собранным пакетом Python(X,Y).
- Загрузим Python(X,Y): страница загрузки, из раздела Current release.
- Установим его, причем обязательно не забыв поставить галочку для установки всех плагинов в Python(X,Y).
- Все готово.
По непонятным причинам в некоторых случаях установка происходит довольно криво. Попробуйте выполнить следующие команды в своем Python:
import numpy numpy.test()
Юнит-тесты могут сразу показать, все ли хорошо. Аналогично их стоит запустить для библиотек pandas, pylab, sklearn. Если вдруг вываливается ошибка, то можно попробовать установить Python и библиотеки другим способом.
Установку вручную
Минимальный набор для работы:
- Python 2.7
- IPython Notebook
- NumPy
- Matplotlib
- Pandas
- SciKit-Learn
Лучше ставить 32-битные версии, поскольку 64-битные не всегда работают корректно под Windows. Обратите внимание, что некоторые библиотеки будут иметь дополнительные зависимости в виде других библиотек, их тоже придется поставить.
Запуск IPython Notebook
Попробуем запустить IPython Notebook. Для этого запустим командную строку (нажать win+R и ввести cmd), и введем ipython notebook —pylab inline. Должен открыться браузер с запущенным из текущей директории IPython Notebook. Все ноутбуки будут сохраняться в текущую директорию, из которой был вызван IPython Notebook.
Mac OS X и Linux
Mac OS
Установка Python через brew
официального сайта
Если у вас нет питона, то придется поставить brew с вытекающей от туда установкой Xcode. Следуйте указаниям с сайта Homebrew и у вас все получится.
Устанавливаем свежую версию Python и virtualenv:
brew install python --with-brewed-openssl
Устанавливаем фортран (нужен для сборки NumPy и SciPy):
brew install gcc pkg-config freetype
Создаем виртуальное окружение:
pip install virtualenv virtualenv shad-env source shad-env/bin/activate
Устанавливаем необходимые пакеты питона:
pip install ipython[notebook] numpy scipy pandas scikit-learn matplotlib
Ручная установка Python
Можно попробовать поставить все вручную, список необходимых библиотек см. в разделе для Windows.
Сторонний туториал
Туториал.
Linux
Для сохранения здоровья, используйте Ubuntu 12.04 LTS или выше.
Устанавливаем необходимые тулзы для Python:
sudo apt-get install python-pip python-dev python-virtualenv build-essential
Устанавливаем пакеты, необходимые для сборки NumPy, SciPy и Matplotlib:
sudo apt-get install libatlas-base-dev gfortran sudo apt-get build-dep python-matplotlib
Создаем виртуальное окружение питона (virtualenv).
virtualenv shad-env source shad-env/bin/activate
Ставим необходимые для курса пакеты:
pip install ipython[notebook] numpy scipy pandas matplotlib scikit-learn
Почему не сделать apt-get install
Вы можете сделать что-то вроде
sudo apt-get install ipython-notebook python-numpy python-scipy python-pandas python-matplotlib
и установить питоновские пакеты в систему из репозитория Debian. Однако, пакеты debian содержат достаточно старые версии python-пакетов (к примеру, IPython Notebook у вас будет значительно менее модный). Свежие версии загружаются утилитой pip из репозитория PyPI.
Запуск IPython Notebook
Для того, чтобы графики встраивались в отчёт, а не открывались в отдельном окне, IPython Notebook нужно запускать следующим образом:
ipython notebook --pylab inline
Либо в уже запущенном Notebook выполнить
%pylab inline
Использование virtualenv
virtualenv позволяет заключить в отдельный каталог необходимые версии python-пакетов и использовать только их.
Используя virtualenv, Вы можете устанавливать свежие версии пакетов из Python Package Index, при этом не получить проблем с несовместимостью версий пакетов с установленными в системе.
Нормальным решением также является установка python-пакетов через pip в системные каталоги. Для этого не нужно ничего с virtualenv, но запускать pip при этом следует от рута:
sudo pip install ipython[notebook] numpy scipy pandas matplotlib scikit-learn
Но напоминаем, пакеты могут конфликтовать с системными, может фейлиться сборка, могут импортироваться старые версии и возникать другие проблемы…
Для создания виртуального окружения необходимо сказать
virtualenv yourenv
при этом будет создан каталог yourenv с чистым окружением без каких либо пакетов.
Для использования виртуального окружения можно использовать команды из соответствующего каталога:
yourenv/bin/python script.py yourenv/bin/pip install ... # установка пакетов в виртуальное окружение yourenv/bin/ipython
Для того чтобы не говорить префикс yourenv/bin, удобно в текущей сесии командной строки выставить необходимые переменные окружения (активировать виртуальное окружение):
source yourenv/bin/activate (yourenv)$ pip install ... # установка пакетов в виртуальное окружение (yourenv)$ ipython
После активации, у приглашения командной строки появится префикс (yourenv).
Для того, чтобы деактивировать виртуальное окружение, необходимо сказать
(yourenv)$ deactivate python # префикс пропал, python будет выполняться в системном окружении