article banner

Встановлення пакетів на Python

Це фрагмент книги Python з нуля, яка допоможе вам навчитися програмуванню з нуля. Ви можете знайти його на Allegro, Empik та в інтернет-книгарнях.

Python створений і розроблений ентузіастами, які були захоплені цією мовою та хотіли її розвивати. З часом утворилася ціла спільнота — Python community. Крім мови, було створено низку інструментів, у тому числі для легкого обміну пакетами.

PyPI

Так з’явилася центральна база пакетів PyPI 1 (Python Package Index). Можеш собі уявити, що це величезний диск, на якому розробники розміщують пакети, а користувачі їх завантажують. Якщо тобі потрібно знайти такий пакет, усі вони подані та описані на сторінці pypi.org.

PyPI має власну пошукову систему та величезну кількість фільтрів для відображення результатів. Однак особисто я рідко нею користуюся. Багато результатів стосуються непопулярних пакетів. Частіше я знаходжу пропоновані пакети в StackOverflow, блогах чи на форумах, а в PyPI перевіряю їх використання та документацію (опис того, як вони працюють).

Сторінка центрального сховища пакетів pypi.org.

Опис пакета fastly у версії 0.5.1.

Pip

Оскільки я вже згадав про завантаження пакетів, для цього існує ще один інструмент під назвою pip 3. Це система керування пакетами, тобто програма, яка дозволяє завантажувати, видаляти або змінювати версії пакетів. Достатньо дати їй інструкцію, що саме слід завантажити, і вона про все подбає.

Pip за замовчуванням встановлюється разом із Python. Однак буває, що на комп’ютері заінстальовано Python, а pip — ні. Почнімо із перевірки, чи встановлено pip у Тебе. Відкрий командний рядок 4 (Термінал у випадку MacOS або Linux) та введи "pip --version". Якщо програма у Тебе встановлена, буде відображено її версію. Якщо ні, Ти побачиш повідомлення про помилку посилання на програму, якої немає.

Щоб встановити pip, перейди на вебсайт https://bootstrap.pypa.io/get-pip.py і завантаж цей файл (клацни правою кнопкою миші та вибери "Зберегти як") у місце, де відкритий командний рядок 5. Він буде називатися "get-pip.py".

Потім запусти цей файл за допомогою Python, тобто виклич "python get-pip.py". Після цього вимкни й увімкни командний рядок, а потім знову введи "pip --version". Якщо команда досі не вказує правильну версію, введи "pip3 --version". Додаткова трійка означає, що pip було встановлено для Python у третій версії. У такому випадку під час наступних кроків встановлення пакетів використовуй "pip3", а не "pip".

Якщо щось пішло не так, повтори всі кроки для встановлення Python з розділу Перша програма, а потім виконай інструкцію зі встановлення pip 6.

Встановлення пакетів з pip

Щоб установити пакет за допомогою pip, запусти з командного рядка (або Терміналу) "pip install {package name}" (або "pip3 install {package name}"). Назву пакета вводимо малими літерами.

Зверни увагу, що команда для встановлення пакета виділена на сторінці PyPI. Нижче наведено метод інсталяції пакета "fastly".

Встановлення пакетів у PyCharm

Якщо ми використовуємо PyCharm, управляти пакетами стає набагато простіше. Достатньо відкрити налаштування (File > Preferences), а потім вибрати вкладку "Project {назва проєкту} > Python Interpreter".

Для інтерпретатора Python, який використовується у проєкті (на комп’ютері може бути встановлено кілька інтерпретаторів), ми побачимо список встановлених пакетів та їхні версії. Цим списком легко керувати за допомогою плюса і мінуса. Мінус — це видалення пакета. Плюс — встановлення нового. Після його використання відображається інструмент пошуку пакетів. Знайшовши пакет, ми встановлюємо його за допомогою кнопки Install Package.

У PyCharm є ще один трюк, який я часто використовую. Припустімо, Ти шукаєш в інтернеті код для виконання певної операції. Ти знаходиш його та копіюєш у файл Python у PyCharm. Якщо в коді використовується пакет, який у Тебе не встановлений, під час його імпортування буде позначено помилку. Якщо ти помістиш на неї курсор, а потім натиснеш Alt+Enter (command+Enter на MacOS) 7, ти побачиш пропозицію встановити цей пакет. Прийми її, натиснувши Enter, і PyCharm зробить все інше.

Керування версіями

Я багато разів згадував про версії. Це були різні версії Python, pip або пакетів. Навіщо всі ці версії? Хорошою метафорою в цьому випадку буде книга. Перший випуск книги — це перша версія. Через деякий час автор вирішує внести деякі правки, і з’являється друга версія. Потім третя, четверта і т.д. Те ж стосується програмного забезпечення, але оскільки внести зміни до програмного забезпечення набагато легше, ніж до книг, програми, зазвичай, мають значно більше версій.

Версія у програмуванні найчастіше описується відповідно до системи Semantic versioning. Вона складається із трьох частин, розділених крапками: Major, Minor та Patch. За замовчуванням перша готова до використання версія — це "1.0.0", а перша створена для демонстраційних цілей — "0.0.1". Коли ми випускаємо нову версію, то збільшуємо одну із частин назви версії відповідно до наступного ключа:

  • Major — збільшуємо, якщо були дуже значні зміни, через які код, написаний для попередньої версії, швидше за все, не працюватиме. З її збільшенням ми скидаємо частини Minor і Patch до нуля.
  • Minor — збільшуємо, коли були зміни, через які код, написаний для попередньої версії, працюватиме дещо інакше, ніж раніше. Ми також можемо позначити певні елементи як depricated (тобто, що їх не слід використовувати) або видалити елементи, які були depricated (через що частина програм, які використовували попередні версії, можуть не спрацьовувати). Збільшуючи її, ми обнуляємо Patch.
  • Patch — збільшуємо, якщо вносимо незначні зміни, які не повинні впливати на використання нашого пакета.

Приклад версії, збереженої відповідно до системи Semantic versioning, із підписаними частками MAJOR, Minor і patch.

Зазначення версії дуже важливе. Уяви, що Ти створив програму, яка працює для пакета версії "1.2.3". Вона чудово працює, але потім виходить версія "2.0.0" цього пакета. На жаль, функції, які він надає, зовсім інші, через що Твій код перестає працювати. Ти, звичайно, можеш налаштувати свій код, але це вимагає додаткової роботи. До того ж кожен програміст хотів би робити це тоді, коли йому зручно, а не тоді, коли виходить нова версія пакета. Ось чому в PyPI зберігається не лише остання версія пакета, але й усі попередні. Ми можемо вибрати, яку саме версію пакета хочемо завантажити. При завантаженні через pip ми вказуємо її після подвійного знака рівності, наприклад "pip install {назва пакета}=={версія}" (або "pip3 install{назва пакета}=={версія}").

Коли справді великі проєкти пишуться під конкретну версію пакета, адаптація до нової версії може бути настільки дорогою, що цього можуть не захотіти робити. Така ситуація траплялася подекуди з самою мовою Python. Коли була представлена третя версія, багато програм вирішили зупинитися на другій версії. Утворився внутрішній розкол, дуже проблематичний для усього середовища. Код, який подається на форумах чи курсах, зазвичай працює лише в одній із цих версій. Відповідно пакети також адаптуються до однієї чи іншої версії. Наразі третя версія фактично стала стандартом, але схоже, що ми ще не скоро забудемо про другу.

Завершення

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

1:

Багато програм і пакетів визначають, які літери мають бути великими, а які — малими. Я намагаюся завжди це поважати. Ось чому я пишу PyPI, а не Pypi. Крім того, pip, попри те, що це власна назва, пишеться малими літерами, якщо немає інших причин використовувати великі.

3:

Назва pip — це скорочення від англ. "Pip Installs Packages". Цікаво, що розшифровка абревіатури містить саму абревіатуру? Це так звана рекурсивна абревіатура. У світі програмування є багато таких абревіатур. Ми вважаємо їх кумедними, а оскільки Python розробляли ентузіасти, яким за це ніхто не платив, у багатьох місцях можна знайти цікаві несподіванки. Щоб знайти одну із них, введи "import this" в Python REPL.

4:

Я описав, як це зробити, в розділі Перша програма.

5:

Замість цього ми, звичайно, можемо в командному рядку перейти до місця, де ми зберегли файл. Це трохи схоже на Провідник, тобто програму, яка запускається, коли ми відкриваємо "Мій комп’ютер". Він відкритий у певному місці, і там можна відкривати файли, перейменовувати їх тощо. У Провіднику ми перевіряємо файли та папки там, де ми перебуваємо, за допомогою команди "dir" (у Терміналі за допомогою "ls"). Заходимо в папку через "cd {назва папки}". Щоб повернутися до папки, в якій знаходиться поточна папка, використовуємо "cd ..". Після введення "cd" і натискання Tab Ти побачиш список пропозицій. Почни вводити назву і натисни Tab, тоді Ти бачитимеш лише папки, які відповідають тому, що вже введене. Якщо залишиться тільки один варіант, назва буде автоматично заповнена до кінця. Таким чином ми переміщаємося папками у Провіднику/Терміналі.

6:

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

7:

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