Skip to content

2. Налаштування робочого середовища

2.1. Python 3.8.1

Приклади в цьому документі було протестовано з інтерпретатором Python 3.8.1, доступним за посиланням URL |https://www.python.org/downloads/| (лютий 2020 р.) на комп’ютері з ОС Windows 10:

Image

В результаті встановлення Python створюється папкова структура [1] та з’являється пункт меню [2] у списку програм:

Image

  • [3-4]: два інтерактивні інтерпретатори Python;
  • [5]: документація Python;
  • [6]: документація до модулів Python;

Ми не будемо використовувати інтерактивний інтерпретатор Python. Просто варто знати, що скрипти з цього документа можна запускати за допомогою цього інтерпретатора. Це зручно для тестування роботи тієї чи іншої функції Python, але малопридатне для скриптів, які планується використовувати повторно. Ось приклад із використанням опції [4], наведеної вище:

Image

У командному рядку >>> можна ввести команду Python, яка негайно виконується. Наведений вище код має таке значення:

1
2
3
4
5
6
>>> nom="tintin"
>>> print("nom=%s" % nom)
nom=tintin
>>> print("type=%s" % type(nom))
type=<class 'str'>
>>>

Рядки:

  • 1: ініціалізація змінної. У Python тип змінних не оголошується. Вони автоматично набувають типу значення, яке їм присвоюється. Цей тип може змінюватися з часом;
  • 2: виведення імені. «nom=%s» — це формат виведення, де %s є формальним параметром, що позначає рядок символів. nom — це фактичний параметр, який буде виведено замість %s;
  • 3: результат відображення;
  • 4: відображення типу змінної nom;
  • 5: змінна nom тут має тип class. У Python 2.7 вона мала б значення <type 'str'>;

Тепер відкриємо консоль Windows:

Image

Те, що ми змогли ввести [python] замість [1] і що виконуваний файл [python.exe] було знайдено, свідчить про те, що він знаходиться в PATH на комп’ютері з Windows. Це важливо, оскільки це означає, що засоби розробки Python зможуть знайти інтерпретатор Python. Перевірити це можна так:

Image

  • у [2] — виходимо з інтерпретатора Python;
  • у [3] — команда, що відображає PATH з виконуваних файлів комп’ютера з Windows;
  • у [4] видно, що папка інтерпретатора Python 3.8 входить до складу PATH;

2.2. IDE PyCharm Спільнота

2.2.1. Вступ

Для створення та виконання скриптів, наведених у цьому документі, ми використовували редактор [PyCharm] у версії Community, доступній (станом на лютий 2020 р.) за посиланням URL |https://www.jetbrains.com/fr-fr/pycharm/download/#section=windows| :

Image

Завантажте IDE, PyCharm та [1-3] версії Community та встановіть їх.

Запустимо IDE PyCharm, а потім створимо перший проект на Python:

Image

Image

  • у [2-4] створіть новий проєкт;

IDE PyCharm показує створений проєкт у такому вигляді:

Image

  • у [2-3] розглянемо властивості IDE;

Image

  • у [4] — інтерпретатор Python, який буде використовуватися для проекту;
  • у [5] — випадаючий список доступних інтерпретаторів;
  • у [6] вибираємо інтерпретатор, завантажений у розділі |Python 3.8.1|;

Image

  • у [7] — обраний інтерпретатор;
  • у [8] — список пакетів, доступних для цього інтерпретатора. Пакеті містять модулі, які можуть використовувати скрипти Python. Існують сотні доступних модулів;

Почнемо з того, що створимо папку, в яку помістимо наш перший скрипт на Python:

Image

  • клацніть правою кнопкою миші на проекті, а потім на [1-2], щоб створити папку;
  • у [3] введіть назву папки: вона буде створена в папці проекту;

Далі створимо скрипт на Python:

Image

  • клацніть правою кнопкою миші на папці [bases], а потім на [1-3];
  • у [4-5] вкажіть ім’я скрипта;

Напишемо наш перший скрипт:

Image

  • у файлі [3] запишемо такий скрипт:

    • рядки 1, 3: коментарі починаються зі знака #;
    • рядок 2: ініціалізація змінної. У Python тип змінних не оголошується;
    • рядок 4: виведення на екран. Тут використовується синтаксис [format % données] у форматі:
      • формат: ім’я=%s, де %s позначає місце для символьного рядка. Цей рядок буде знайдено в частині [données] виразу;
      • дані: значення змінної [nom] замінить формат %s у форматному рядку;
    • за допомогою [4-5] ми переформатуємо код відповідно до рекомендацій організації, що керує Python;

Скрипт запускається правою кнопкою миші на коді [6]:

Image

  • у [7] — виконана команда;
  • в [8] — результат виконання;

Щоб виконати скрипт документа, завантажте код за посиланням URL |https://tahe.developpez.com/tutoriels-cours/python-flask-2020/documents/python-flask-2020.rar|, а потім у PyCharm виконайте наступні дії:

Image

  • у [1-2] відкрийте існуючий проект: вкажіть папку із завантаженим кодом;
  • у [3] — відкритий проект;
  • у [4-5] — запуск одного зі скриптів проекту;

Image

  • у [7-8] — результати виконання;

2.2.2. Віртуальне середовище виконання

Наше робоче середовище тепер готове до роботи. Однак ми змінимо його, щоб написати скрипти для цього курсу. Спочатку змінимо налаштування Pycharm:

Image

У правому вікні:

  • за замовчуванням встановлено прапорець [1]. Знімаємо його, щоб Pycharm за замовчуванням не відкривав останній відкритий проєкт, а давав нам можливість вибрати той, який потрібно відкрити;
  • у полі [2] не підтверджуємо вихід із Pycharm під час закриття вікна програми;
  • у [3] нові проекти відкриваються в окремому вікні;
  • у [4], якщо закрити Pycharm, коли програма виконується, вона зупиняється;

Тепер закриємо PyCharm, а потім знову відкриємо його:

Image

  • у [1] створюємо новий проєкт;
  • у [2] вкажіть папку для проекту;
  • У [3] слід створити віртуальне середовище. Віртуальне середовище є унікальним для проекту, який ви створюєте. Воно не перетинається з віртуальними середовищами інших проектів. Проєкт Python / Flask використовує багато зовнішніх бібліотек, які потрібно встановити. Проєкт P1 може використовувати бібліотеку B у версії v1, а проєкт P2 — ту саму бібліотеку B, але у версії v2. Ці дві версії можуть бути більш-менш сумісними. Однак коли встановлюється бібліотека у версії v2, а версія v1 вже встановлена, остання перезаписується версією v2. Це може стати проблемою для проекту, який використовував версію v1, якщо нова версія v2 не є повністю сумісною з версією v1. Щоб уникнути цих проблем, кожен проект ізолюється у віртуальному середовищі;
  • у [4] вкажіть папку, де будуть зберігатися бібліотеки Python, які будуть завантажуватися в ході роботи над проєктом. Тут ми вибрали папку [venv] (virtual environment) усередині папки проєкту. Це не є обов’язковим;
  • у [5] — інтерпретатор Python для проекту. Це той, який ми встановили на попередньому кроці;
  • у [6] — створити проєкт;

Image

  • у [7-8] — створений проєкт;
  • у [9] — середовище виконання проекту, яке називається віртуальним середовищем;
  • у [10] папка [site-packages] — це папка, у якій будуть зберігатися бібліотеки, завантажені пізніше;

2.2.3. Git

Далі активуємо систему контролю версій. У даному випадку це буде Git [1-4]:

Image

Програмне забезпечення для управління версіями (VCS: Version Control System) дозволяє відстежувати зміни в проєкті. За допомогою операції, яка називається «комміт», можна створювати знімки проекту в різні моменти його існування. Якщо виконати два комміти в моменти часу T та T+1, VCS дозволяє дізнатися, що змінилося між цими двома зафіксованими версіями. Зазвичай VCS використовується командою розробників. Вони виконують коміти свого коду після того, як він був належним чином протестований. За допомогою VCS інші розробники можуть отримати цей перевірений код і використовувати його.

У даному випадку є лише один розробник. Досвід показує, що може трапитися так, що програма працює в момент часу T, а в момент часу T+1 вже не працює. Тоді хотілося б повернутися назад до моменту часу T, щоб почати все з нуля. VCS дозволяє це зробити, і саме тому ми будемо використовувати його в даному випадку.

Ми покажемо, як це зробити за допомогою Git.

Image

  • у [1] виберіть вкладку [Git] (внизу ліворуч);
  • у [2] видно, що 495 файлів проєкту не підлягають версіонуванню Git. Це означає, що вони не будуть включені до знімків проєкту під час комітів;
  • у [3] — кнопка з [commit] або кнопка підтвердження проекту. Як уже зазначалося, Git створює знімок проекту та зберігає його у папці [.git] у кореневому каталозі проекту (ця папка не відображається в PyCharm, але її можна побачити у провіднику Windows);

Підтвердимо [3] проект у його поточному стані.

  • у [4] — список файлів, що не підлягають версіонуванню;
  • у [5] усі ці файли, що не підлягають версіонуванню, належать до віртуального середовища [venv];
  • у [6] кожен комміт повинен супроводжуватися повідомленням. Розробник вказує тут зміни, внесені у версію, що буде зафіксована, порівняно з останньою зафіксованою версією;

Деякі папки або файли можуть ігноруватися Git. У такому разі вони ніколи не потрапляють до знімка. У [5], наведеному вище, клацнімо правою кнопкою миші на папці [venv].

  • У [1-3] вказано, що папка [venv] не повинна входити до репозиторію Git. Список папок і файлів, проігнорованих Git, зберігається у файлі з назвою [.gitignore] [4];

Image

Image

  • після попередньої операції всі файли з папки [venv] зникають зі списку файлів, що не підлягають версіонуванню. Залишається лише щойно створений файл [.gitignore];
  • у [5] ми виділяємо його для збереження;
  • у [6] створюємо повідомлення про коміт:
  • у [7] підтверджуємо. Після цього створюється знімок проекту;

Image

  • у [8-9] міститься вміст файлу [.gitignore]: один рядок з назвою папки [/venv], що вказує на те, що її вміст слід пропустити під час обробки фотографій;

Тепер покажемо, як Git може нам стати в нагоді. Спочатку створимо папку [git] (можна використовувати будь-яку іншу назву — її можна буде видалити після завершення демонстрації):

Image

  • у [1-5] створюємо папку [git];

Image

  • у [6-10] створюємо скрипт Python [git_01];

Image

  • у файлі [11-12] скрипт містить лише коментар;
  • у [13-14] створюється копія [git_01]. Для цього виділіть [git_01], натисніть Ctrl-C (Копіювати), потім Ctrl-V (Вставити) і вкажіть [git_02] як ім’я файлу;

Image

Тепер зафіксуємо наш проєкт. Буде зроблено знімок із двома файлами [git_01, git_02];

Image

  • у [1-3], зафіксуємо проект;
  • у [4] вибираємо файли, що не входять до версії, які хочемо зафіксувати, у даному випадку всі;
  • у файлі [5] вводимо повідомлення, що ідентифікує коміт;
  • у [6] — підтверджуємо;

Image

  • у [1-2] — підтверджуємо коміт;
  • у [3] вибираємо вкладку [Log];
  • у [4] — перегляд гілок проєкту. Тут є лише одна гілка з назвою [master];
  • у [5-6] — щойно виконаний коміт;

Тепер аналогічним чином створимо скрипт [git_03]:

Image

Змінимо скрипт [git_02] і видалимо скрипт [git_01]:

Image

Потім зафіксуємо нову версію:

Image

Тепер у журналах є два коміти:

Image

Коли вибираємо конкретний коміт, праворуч від нього з’являється дерево файлів проєкту:

Image

Тепер припустимо, що останній коміт привів нас у глухий кут і ми хочемо повернутися до стану, що відповідає одному з попередніх комітів:

Image

  • до [1-2], вибираємо коміт, до стану якого хочемо повернутися;
  • у [3-5] існує кілька режимів скидання. Ми обираємо режим [hard], який повертає нас до обраного стану, втрачаючи зміни, внесені з того часу;

Image

  • у [6] відновлено [git_01], який було видалено;
  • у [7-8] відновлено [git_02] у його початковому стані без внесеної зміни;

Тепер відредагуємо [git_02] і додамо [git_03] та [1-4]:

Image

Тепер повторімо операцію повернення до початкового коміту:

Image

  • у [1-4] ми повертаємося до зображення з коміту № 1;
  • у [5-6] ми вибираємо опцію [Keep] замість [Hard]. Ці опції нелегко зрозуміти. Тому їх потрібно випробувати:
  • у [1] файл [git_03] все ще присутній;
  • при [2-3] файл [git_02] зберіг свої зміни;

Важко сказати, що зробив цей [Revert Commit]. Тепер зафіксуємо поточний стан:

Image

  • у [1-6] — коміт;

Image

  • у [9] ми бачимо новий комміт;

Тепер спробуємо повернутися до коміту 1, як це вже було зроблено раніше:

  • у [1-6] ми повертаємося до коміту № 1 у режимі [Hard];

Image

  • в [7-8], цього разу ми дійсно втратили всі зміни, внесені з моменту першого коміту;

Далі ми більше не повертатимемося до [Git]. Читач може працювати таким чином:

  • він може слідувати наведеним прикладам, вводячи їх самостійно або завантажуючи з веб-сайту курсу;
  • щоразу, коли приклад працює, він зможе виконати коміт свого проєкту;
  • коли він розробляє власний код і потрапляє у глухий кут, він знає, що може повернутися до стабільної ситуації, повернувшись до попереднього коміту;

2.3. Правила написання коду на Python

Можна писати код на Python без дотримання правил написання, і це не завадить йому працювати. Але він може не сподобатися спільноті Python, яка встановила правила написання. Вони викладені у дописі за адресою |https://stackoverflow.com/questions/159720/what-is-the-naming-convention-in-python-for-variable-and-function-names|:

Image

  • назва модуля (module_name) відповідає умові, яку іноді називають [snake_case]: всі літери нижнього регістру, слова можуть розділятися символом підкреслення. Ця конвенція [snake_case] застосовується до імен методів, пакетів, змінних та функцій;
  • ім’я класу (ClassName) відповідає конвенції, яку іноді називають [PascalCase]: послідовність слів, з’єднаних разом, де кожна перша літера слова пишеться з великої літери;
  • імена констант відповідають конвенції [SNAKE_CASE]: послідовність слів, написаних великими літерами та розділених символом підкреслення;

Ці правила в цілому дотримувалися в цьому документі. Проте для модулів, що визначають клас, я дав модулю таку саму назву, як і класу, який він містить. Отже, він дотримується правила [PascalCase] замість [snake_case]. Я хотів мати змогу швидко знаходити модулі класів.