Запуск та завершення роботи

Last updated on 2025-03-13 | Edit this page

Estimated time: 15 minutes

Overview

Questions

  • Як запустити програми Python?

Objectives

  • Запуск серверу JupyterLab.
  • Створення нового скрипту Python.
  • Створення блокноту Jupyter.
  • Завершення роботи сервера JupyterLab.
  • Розуміння різниці між скриптом Python і блокнотом Jupyter.
  • Створення в блокноті комірок типу Markdown.
  • Створення та виконання в блокноті комірок Python.

Для роботи з Python, протягом цього семінару ми будемо використовувати [блокноти Jupyter][jupyter] у середовищі JupyterLab. Блокноти Jupyter широко застосовуються з метою аналізу та візуалізації даних, а також є зручним інструментальним засобом для запуску коду на Python в інтерактивному режимі, де ми можемо легко переглядати результати його виконання, та ділитися нашим кодом з іншими.

Існують й інші способи редагування, організації та виконання коду. Розробники програмного забезпечення часто використовують інтегроване середовище розробки (IDE), подібне до PyCharm або Visual Studio Code або текстові редактори такі як Vim або Emacs, щоб створити та відредагувати свої програми Python. Після редагування та збереження ваших програм Python ви можете виконувати ці програми в самому IDE або безпосередньо в командному рядку. На відміну від цього, блокноти Jupyter дозволяють відразу переглянути результати нашого Python коду.

JupyterLab має декілька інших зручних функцій:

  • Ви можете легко вводити, редагувати, копіювати та вставляти блоки коду.
  • Автодоповнення за допомогою клавіші Tab дозволяє легко отримувати доступ до назв об’єктів, які ви використовуєте.
  • Дозволяє легко доповнювати свій код посиланнями, текстом різного розміру, маркерами тощо, щоб зробити його доступнішим для вас і ваших колег.
  • Дозволяє розміщувати графічні елементи безпосередньо поруч із кодом, який їх створює, щоб продемонструвати повну історію аналізу даних.

Кожен блокнот містить одну або кілька комірок, що містять код, текст або зображення.

Початок роботи з JupyterLab


JupyterLab є сервером застосунків із вебінтерфейсом користувача від Project Jupyter, що дозволяє працювати з документами та іншими застосунками, такими як блокноти Jupyter, текстові редактори, термінали, і навіть спеціальні компоненти, гнучким, інтегрованим і розширюваним способом. JupyterLab потребує досить сучасний браузер (в ідеалі – поточна версія Chrome, Safari або Firefox); Internet Explorer версії 9 і нижче не підтримується.

JupyterLab є частиною інсталяційного пакета Anaconda Python. Якщо ви не встановили дистрибутив Anaconda Python, дивіться інструкції щодо процесу інсталяції тут.

На цьому уроці ми запустимо JupyterLab локально на наших власних пристроях, тому для цього підключення до Інтернету буде потрібно лише на початку для завантаження та встановлення середовищ розробки Anaconda та JupyterLab

  • Запустіть сервер JupyterLab на вашому комп’ютері
  • Використовуйте веббраузер для відкриття спеціальної локальної URL-адреси для з’єднання з сервером JupyterLab
  • Сервер JupyterLab виконує обчислювальну роботу, а веббраузер відображає її результат
  • Введіть код у браузері, і як тільки сервер JupyterLab завершить виконання, ви зможете переглянути результати

JupyterLab? А чому не Jupyter Notebook?

JupyterLab є подальшим кроком в еволюції Jupyter Notebook. Якщо ви використовували Jupyter Notebook раніше, то ви добре зрозумієте діапазон можливостей JupyterLab.

Досвідчені користувачі блокнотів Jupyter, зацікавлені у більш детальному обговоренні схожостей і відмінностей між інтерфейсами JupyterLab і Jupyter Notebook, можуть знайти більше інформації у документації з інтерфейсу користувача JupyterLab.

Початок роботи з JupyterLab


Ви можете запустити сервер JupyterLab через командний рядок або через застосунок, що має назву ‘Anaconda Navigator’. JupyterLab є частиною інсталяційного пакета Anaconda Python.

macOS - командний рядок

Для запуску сервера JupyterLab вам потрібно отримати доступ до командного рядка через Terminal. Існує два способи відкрити термінал на Mac.

  1. У каталозі Applications відкрийте підкаталог Utilities і двічі натисніть Terminal
  2. Натисніть Command + spacebar для запуску Spotlight. Введіть Terminal, а потім двічі клацніть на результаті пошуку або натисніть Enter

Після запуску Terminal введіть команду для запуску сервера JupyterLab.

BASH

$ jupyter lab

Користувачі Windows - Командний рядок

Для запуску сервера JupyterLab вам потрібен застосунок Anaconda Prompt.

Натисніть Windows Logo Key і знайдіть Anaconda Prompt, натисніть на результат пошуку або на клавішу enter.

Після запуску Anaconda Prompt введіть команду:

BASH

$ jupyter lab

Anaconda Navigator

Для запуску серверу JupyterLab з Anaconda Navigator ви маєте спочатку запустити Anaconda Navigator (натисніть для докладних інструкцій з macOS, Windows та Linux). Ви можете виконати пошук Anaconda Navigator через Spotlight на macOS (Command + spacebar), скористатися функцією пошуку Windows (ключ Windows Logo) або відкривши термінал та виконавши команду anaconda-navigator у командному рядку.

Після того, як ви запустили Anaconda Navigator, натисніть кнопку Launch під JupyterLab. Можливо, вам знадобиться продивитись список донизу, аби знайти її.

Нижче наведено скриншот сторінки Anaconda Navigator, схожої на ту, яка має відкриватися для macOS або Windows.

Anaconda Navigator landing page

Нижче наведено скриншот екрана стартової сторінки JupyterLab, схожої на ту, яка має відкритися у вашому веббраузері за замовчуванням після запуску сервера JupyterLab в операційній системі macOS або Windows.

JupyterLab landing page

Інтерфейс JupyterLab


JupyterLab має багато функцій, які можна знайти в традиційних інтегрованих середовищах розробки (IDE), але його особливістю є забезпечення гнучких “будівельних блоків” для інтерактивних дослідницьких обчислень.

Інтерфейс JupyterLab складається з панелі меню, лівої бічної панелі (що згортається за потреби), і основної робочої області, яка містить вкладки з документами та різними застосунками JupyterLab.

Панель меню

Панель меню у верхній частині вікна JupyterLab містить меню верхнього рівня, яке зображує різні дії доступні в JupyterLab разом із їхніми комбінаціями клавіш (де це можливо). Наступні пункти меню наявні за замовчуванням.

  • File: Дії, пов’язані з файлами та каталогами, такі як New, Open, Close, Save тощо. Меню File також містить дію Shut Down, яка застосовується для завершення роботи сервера JupyterLab.
  • Edit: Дії, пов’язані з редагуванням документів та іншими видами діяльності, такими як Undo, Cut, Copy, Paste тощо.
  • View: Дії, які змінюють зовнішній вигляд інтерфейсу JupyterLab.
  • Run: Дії для запуску коду в різних застосунках, таких як Jupyter Notebook та командний рядок (розглянуто нижче).
  • ** Kernel:** Дії щодо управління ядрами. Ядра у Jupyter будуть детально описані нижче.
  • Tabs: Список відкритих документів та застосунків у робочій області.
  • Settings: За допомогою цього меню можна налаштувати загальні параметри JupyterLab. Окрім того, у ньому також є опція Advanced Settings Editor, яка забезпечує більш детальний контроль параметрів і опцій для конфігурації JupyterLab.
  • Help: Список посилань на довідку JupyterLab та інші ресурси.

Ядра

Документація JupyterLab визначає ядра як “окремі процеси сервера, що виконують ваш код у відповідних мовах програмування та середовищах.” Коли ми відкриваємо Jupyter Notebook, то ініціалізується ядро - процес, який буде виконувати код. У цьому уроці ми будемо використовувати ядро ipython, яке дозволяє запускати Python 3 в інтерактивному режимі.

Використання інших ядер Jupyter для інших мов програмування дозволить нам використовувати спільний інтерфейс JupyterLab для того, щоб писати та виконувати код, наприклад, у таких мовах як R, Java, Julia, Ruby, JavaScript, Fortran, тощо.

Скриншот стандартної панелі меню надано нижче.

JupyterLab Menu Bar

Ліва бічна панель

Ліва бічна панель містить ряд найбільш використовуваних вкладок, а саме: браузер файлів (відображає вміст каталогу, де був запущений сервер JupyterLab), перелік активних ядер і терміналів, панель команд і список відкритих вкладок в основній робочій області. Скриншот стандартної лівої бічної панелі наведений нижче.

JupyterLab Left Side Bar

Ліву бічну панель можна згорнути або розгорнути вибравши пункт “Show Left Sidebar” у меню View, або натиснувши на активну вкладку бічної панелі.

Основна робоча область

Основна робоча область в JupyterLab дозволяє упорядковувати документи (блокноти, текстові файли та ін.) та інші види застосунків (термінали, інтерфейси командного рядка тощо) у панелі вкладок. Ці панелі можна зменшити/збільшити або поділити на підрозділи. Скриншот стандартної основної робочої області наведено нижче.

Якщо Ви не бачите вкладку Launcher на панелі запуску, натисніть синій плюс під “File” та “Edit” у панелі меню, і ця вкладка з’явиться.

JupyterLab Main Work Area

Щоб перемістити вкладку на деяку панель, перетягніть її в центр цієї панелі. Також ви можете розділити панель вкладок, перетягнувши потрібну вкладку ліворуч, праворуч, догори або донизу панелі. Кожна робоча панель має одну поточну активну вкладку. Вкладка для поточної дії позначена кольоровою верхньою рамкою (за замовчуванням - синьою).

Створення скрипту Python


  • Щоб почати писати нову програму на Python, натисніть піктограму текстового файлу під заголовком Other на вкладці Launcher (Запуск) головної робочої області.
    • Можна також створити новий текстовий файл, якщо обрати New -> Text File у меню File на панелі меню.
  • Щоб перетворити цей звичайний текстовий файл на програму Python, виберіть дію Save File As у меню File на панелі меню та надайте новому текстовому файлу назву, яка закінчується розширенням .py.
    • Розширення .py повідомляє всім (операційній системі включно), що цей текстовий файл є програмою Python.
    • Це умовність, а не вимога.

Створення блокноту Jupyter


Щоб відкрити новий блокнот, натисніть піктограму Python 3 під заголовком Notebook на вкладці Launcher в у головній робочій області. Ви також можете створити новий блокнот, обравши New -> Notebook у меню File на панелі меню.

Додаткові зауваження щодо блокнотів Jupyter.

  • Файли, створені в Jupyter Notebook, мають розширення .ipynb, щоб відрізнити їх від програм на Python, створених як звичайний текстовий файл.
  • Блокноти можна експортувати як скрипти Python, які можна запускати з командного рядка.

Нижче наведено скриншот Jupyter Notebook, який був відкритий в JupyterLab. Якщо вам цікаві подальші деталі, дивіться офіційну документацію до Jupyter Notebook.

Example Jupyter Notebook

Як це зберігається

  • Файл блокноту зберігається у форматі JSON.
  • Подібно до вебсторінки, те, що зберігається, відрізняється від того, що ви бачите у своєму браузері.
  • Але формат JSON дозволяє Jupyter комбінувати вихідний код, текст і графіку в одному файлі.

Упорядкування документів в панелях вкладок

У головній робочій області JupyterLab ви можете впорядковувати документи на панелі вкладок. Нижче наведено приклад з офіційної документації.

Multi-panel JupyterLab

Спочатку створіть текстовий файл, консоль Python, та вікно терміналу і розташуйте їх у три панелі в основній робочій області. Далі створіть блокнот, вікно терміналу, та текстовий файл і розподіліть їх на три панелі в основній робочій зоні. Нарешті, створіть власну комбінацію панелей і вкладок. Яка, на вашу думку, комбінація панелей та вкладок буде найбільш корисною для вашого робочого процесу?

Після створення необхідних вкладок ви можете перетягнути одну з них в центр панелі для переміщення вкладки на панель; потім ви можете розділити панель, перетягнувши вкладку ліворуч, праворуч, вгору або до низу панелі.

Код або текст?

Jupyter дозволяє змішувати код і текст у різних типах блоків, які називаються комірками. Термін “код” зазвичай використовується для позначення вихідного коду програмного забезпечення, написаного будь-якою мовою програмування. “Комірка коду” в Notebook містить код; а “текстова комірка” - звичайний текст, який відображується, але не виконується.

Jupyter Notebook має командний режим та режим редагування.


  • Якщо ви натиснете Esc та Return по черзі, то зовнішня межа комірки коду буде змінюватися з сірої на синю.
  • Існують сірий - Command (командний) та синій - Edit (редагування) режими вашого блокноту.
  • Command mode allows you to edit notebook-level features, and Edit mode changes the content of cells.
  • В командному режимі (esc/сірий),
    • Клавіша b створює нову комірку нижче поточної обраної комірки.
    • Клавіша a створює одну комірку вище поточної.
    • Клавіша x видаляє поточну комірку.
    • Клавіша z скасовує вашу останню операцію з коміркою (це може бути операція видалення, створення тощо).
  • Усі дії можна виконувати за допомогою меню, але є багато комбінацій клавіш для прискорення процесу.

Командний режим або режим редагування

Чи ви зараз перебуваєте в командному режимі чи режимі редагування на сторінці Jupyter Notebook?
Перейдіть з одного режиму в інший, а потім у зворотному напрямку. Використайте відповідні швидкі клавіші для видалення комірки. Використайте швидкі клавіші, щоб видалити комірку. Нарешті, скасуйте останню операцію над коміркою також за допомогою швидких клавіш.

Командний режим має сіру рамку, а режим редагування — синю. Використовуйте Esc та Return для перемикання режимів. Ви маєте бути в командному режимі (Натисніть Esc якщо ваша комірка синя). Введіть b або a. Ви маєте бути в командному режимі (Натисніть Esc якщо ваша клітинка синя). Введіть x. Ви маєте бути в командному режимі (Натисніть Esc якщо ваша комірка синя). Введіть z.

Використовуйте клавіатуру та мишу для виділення та редагування комірок.

  • Якщо натиснути клавішу Return, рамка стане синьою та ввімкнеться режим редагування, що дозволяє введення команди в комірку.
  • Якщо є необхідність введення кількох рядків кода в одну клітинку, то натискання клавіші Return в режимі редагування (синя рамка) переміщує курсор на наступний рядок в комірці, як у текстовому редакторі.
  • Якщо нам потрібно запустити код, що знаходиться в комірці, нам потрібен інший спосіб повідомити про це Notebook.
  • Одночасне натискання клавіш Shift + Return призведе до виконання вмісту комірки.
  • Зверніть увагу, що клавіші Return та Shift розташовані поруч на клавіатурі справа.

Jupyter Notebook підтримує мову розмітки текстів Markdown.

  • Блокноти також можуть візуалізувати Markdown.
    • Простий текстовий формат для створення списків, посилань та інших елементів, які можуть бути використані на вебсторінці.
    • Власне, це підмножина HTML, яка виглядає у стилі старомодного електронного листа.
  • Перетворіть поточну комірку на комірку Markdown, увійшовши в командний режим (Esc/gray) та натиснувши клавішу M.
  • Позначка In [ ]: зникне, щоб показати, що це вже не комірка коду, і ви зможете писати текст у форматі Markdown.
  • Перетворіть поточну комірку на комірку з кодом, увійшовши в командний режим (Esc/gray) та натиснувши клавішу y.

Markdown робить більшість того, що можна зробити у HTML.

Таблиця: Елементи синтаксису Markdown та їх зображення.

+—————————————+————————————————+ | Код Markdown | Виведення | +=======================================+================================================+ +—————————————+————————————————+ | | <p></p> | | * Використовуйте зірочки | - Використовуйте зірочки | | * для створення | - для створення | | * маркованих списків. | - марковані списки. | | | | +—————————————+————————————————+ +—————————————+————————————————+ | | <p></p> | | 1. Використовуйте числа | 1. Використовуйте числа | | 1. щоб створити | 2. щоб створити | | 1. марковані списки. | 3. нумеровані списки. | | | | +—————————————+————————————————+ +—————————————+————————————————+ | | <p></p> | | * Можна використовувати відступи | - Можна використовувати відступи | | * Для створення вкладених списків | - Для створення вкладених списків | | * одного типу | - одного типу | | * Або вкладених списків | - Або вкладених списків | | 1. Of different | 1. Of different | | 1. types | 2. types | | | | +—————————————+————————————————+ +—————————————+————————————————+ | | <p></p> | | # A Level-1 Heading | ## A Level-1 Heading | | | | +—————————————+————————————————+ +—————————————+————————————————+ | | <p></p> | | ## A Level-2 Heading (etc.) | ### A Level-2 Heading (etc.) | | | | +—————————————+————————————————+ +—————————————+————————————————+ | | <p></p> | | Line breaks | Line breaks | | don't matter. | don't matter. | | | | | But blank lines | But blank lines | | create new paragraphs. | create new paragraphs. | | | | +—————————————+————————————————+ +—————————————+————————————————+ | | <p></p> | | [Links](http://software-carpentry.org)| [Links](https://software-carpentry.org) | | are created with `[...](...)`. | are created with `[...](...)`. | | Or use [named links][data-carp]. Або використовуйте [іменовані посилання][data_carpentry]. | | | | | [data-carp]: http://datacarpentry.org | | | | | +—————————————+————————————————+

Створення списків в Markdown

Створіть вкладений список в Markdown-комірці блокноту так, щоб вона виглядала наступним чином:

  1. Знайти фінансування.
  2. Виконати роботу.
  • Провести експеримент.
  • Зібрати дані.
  • Провести аналіз.
  1. Написати статтю.
  2. Опублікувати.

Це завдання поєднує як нумерований, так і маркований списки. Зверніть увагу, що маркований список має відступ на 2 пробіли, щоб він не збігався з елементами нумерованого списку.

1.  Get funding.
2.  Do work.
    *   Design experiment.
    *   Collect data.
    *   Analyze.
3.  Write up.
4.  Publish.

Більше математики

Що зображується, коли виконується комірка Python в блокноті, що містить декілька обчислень? Наприклад, що трапиться при виконанні наступної комірки?

PYTHON

7 * 3
2 + 1

Python повертає результат останнього розрахунку.

PYTHON

3

Зміна типу вже наявної комірки з Code на Markdown

Що станеться, якщо Ви напишете у комірці код Python, а потім перемкнете її у режим Markdown? Наприклад, напишіть наступний вираз в комірці коду:

PYTHON

x = 6 * 7 + 12
print(x)

Потім запустіть цей код в комірці за допомогою Shift+Return, щоб переконатися, що ця комірка працює як комірка коду. Тепер поверніться до комірки та натисніть Esc, а потім m, щоб перемкнути комірку на Markdown і “запустити” її за допомогою Shift+Return. Що сталося, і як це може бути корисним?

Код Python розглядається як текст Markdown. Рядки виглядають так, ніби вони є частиною одного суміжного абзацу. Це може бути корисним для тимчасового вмикання та вимикання комірок у блокнотах, які використовуються для різних цілей.

PYTHON

x = 6 * 7 + 12 print(x)

Рівняння

Стандартний Markdown (наприклад, такий, що використовується для цих нотаток) не відображає рівняння, але Notebook буде це робити. Створіть нову комірку Markdown і введіть наступне:

$\sum_{i=1}^{N} 2^{-i} \approx 1$

(Мабуть, це легше скопіювати та вставити.) Що зображається? Як ви думаєте, що роблять підкреслювання _, циркумфлекс ^ і знак долара $?

Рівняння зображується у блокноті відповідно до синтаксису, який використовується у LaTeX. Знаки долара $ використовуються для того, щоб повідомити Markdown про те, що текст між цими знаками є рівнянням LaTeX. Якщо ви не знайомі з LaTeX, підкреслення _ використовується для підрядкових індексів та циркумфлекс ^ використовується для верхніх індексів. Пара фігурних дужок { та } використовується для групування тексту разом, щоб вираз i=1 став нижнім, а N - верхнім індексом. Аналогічно, вираз -i взятий у фігурні дужки, щоб зробити цей вираз верхнім індексом для 2. \sum та \approx є командами LaTeX для значень “sum over” й “approximate”.

Вихід з JupyterLab


  • На панелі меню оберіть меню “File” і натисніть “Shut Down” внизу спадного меню. Вам буде запропоновано підтвердити, що Ви бажаєте вимкнути сервер JupyterLab (не забудьте зберегти свою роботу!). Натисніть “Shut Down”, щоб вимкнути сервер JupyterLab.
  • Щоб перезапустити сервер JupyterLab, вам потрібно буде повторно виконати наступну команду в терміналі.
$ jupyter lab

Вихід з JupyterLab

Потренуйтеся закривати та перезапускати сервер JupyterLab.

Key Points

  • Скрипти Python - це звичайні текстові файли.
  • Застосування Jupyter Notebook для редагування та запуску Python
  • Jupyter Notebook має командний режим та режим редагування.
  • Використовуйте клавіатуру та мишу для виділення та редагування комірок.
  • Notebook підтримує мову розмітки текстів Markdown.
  • Markdown робить більшість того, що можна зробити у HTML.