Создание скриптов. Работа с IDE
Contents
Создание скриптов. Работа с IDE#
Файлы с исходным кодом#
До этого момента мы с вами работали только в интерактивной подсказке и jupyter ноутбуках, но основной способ программирования на python
(как и в большинстве других языков программирования) — составление программы, состоящей из файла/файлов с исходным кодом. Исходный код обычно хранится в файлах с расширением .py
, а при их исполнении интерпретатор python
(обычно CPython
) считывает и исполняет команды из файла по строке.
Python файлы часто разделяют на скрипты и модули. Скрипт — то, что непосредственно предназначено для исполнения, а модуль — предназначен для импортирования в скрипте и в других модулях.
При решении исследовательских задач часто удобно бывает начать разработку в jupyter notebook: в интерактивном режиме удобно анализировать и визуализировать данные, прототипировать и тестировать функционал. По завершении такого этапа часто образовывается логически целостная программная единица, которая а) может пригодится и в других проектах б) в дальнейшем будет исполняться множество раз (например, на других наборах данных). Тогда гораздо удобнее перетащить код из jupyter ноутбука в файл .py
(с возможным разделением на модули), который может быть импортирован в других программах в качестве модуля или запущен интерпретатором python без необходимости загружать jupyterlab и вручную исполнять ячейки.
Конвертирование .ipynb в .py#
Вообще говоря, файл .ipynb — файл в формате json
. Внутри этого файла можно найти список ячеек cells
, элементы которого структуры, соответствующие каждой ячейке ноутбука. Например, у исполняемых ячеек с кодом есть поля source
и outputs
. Т.е. jupyter notebook содержит в себе исходный код всех ячеек и можно конвертировать его в файл .py
записав в текстовый файл исходный код всех ячеек друг под другом.
Note
В поле outputs
ячейки могут храниться изображения и другие не текстовые данные. Из-за этого такие файлы хуже работают с системами контроля версий (например, git
), действие которых основано на вычислении разницы (diff
) между двумя версиями файлов. В текстовых файлах можно выделить логические единицы (например, строки) и отслеживать появление/удаление таких единиц между версиями файлов. Для бинарных данных невозможно выделить таких единиц для произвольного содержимого файла.
Если скрипт уже открыт в jupyter, то для конвертирования достаточно в меню выбрать File
\(\to\) Download as
\(\to\) Python (.py)
.
Можно добиться похожего эффекта в командной строке не открывая ноутбук командой
jupyter nbconvert --to script notebook.ipynb
где notebook.ipynb
— имя ноутбука.
Warning
необходимо следить, чтобы магические команды
jupyter
(такие, как %matplotlib inline) не попали в исходных код.при конвертации в скрипт попадёт исходных код всех ячеек в порядке сверху вниз, т.е. если для корректной логики программы следует исполнять ячейки в другом порядке или некоторые из них исполнять не единожды или вообще не исполнять, то необходимо переработать структуру программы.
Tip
При таком способе конвертации в скрипт попадают комментарии, отделяющие исходный код разных ячеек. С помощью многократного нажатия комбинации клавиш shift+M
можно склеить ячейки ноутбука в одну большую.
Среды разработки#
В подавляющем большинстве ситуаций разработка осуществляется в среде программирования, в качества примера которых можно привести
Spyder-IDE, бесплатный, предназначен для научного программирования,
PyCharm, есть бесплатная версия (
community edition
) с ограниченным функционалом, предназначен для разработки полномасштабных приложений;Visual Studio Code, бесплатный, не позиционируется в качестве полноценной среды разработки, а только в качестве продвинутого текстового редактора.
многие другие;
Командная строка#
windows#
Короткий обзор команд навигации по файловой системе в cmd
Windows.
Команда |
Действие |
---|---|
|
перейти в указанную папку на том же диске |
|
перейти на уровень выше |
|
перейти на другой диск |
|
Вывод содержимого текущей папки. |
Если python добавлен в переменную среды PATH
, то для запуска скрипта из cmd
достаточно написать команду
python path/to/script.py
Mac OS#
TODO
Unix#
Короткий обзор команд навигации по файловой системе в командной строке unix-like операционных систем.
Команда |
Действие |
---|---|
|
перейти в указанную папку на том же диске |
|
перейти на уровень выше |
|
Вывод содержимого текущей папки. |
запуск скрипта:
python path/to/script.py