Початок роботи з віртуальними середовищами в Python

У цій статті ви дізнаєтеся, як розпочати роботу з віртуальними середовищами на Python в операційних системах Windows і Linux.

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

Щоб скористатися перевагами віртуальних середовищ у Python, давайте навчимося створювати та активувати віртуальні середовища. 👩🏽‍💻

Що таке віртуальні середовища?

Віртуальні середовища — це ізольовані та незалежні середовища, які містять код і залежності проекту.

Але навіщо вам використовувати віртуальні середовища?

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

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

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

Однак під час роботи над проектами Python вам часто доведеться встановлювати інші пакети, розроблені спільнотою Python. Це особливо вірно для таких програм, як веб-збирання для збору даних, машинне навчання та веб-програми.

Щоб установити ці пакети та керувати ними, ви можете використовувати conda або pip.

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

Тож чому це проблема?

Що ж, у вашому середовищі розробки може бути N пакетів. Однак для проекту, над яким ви зараз працюєте, може знадобитися лише 3 з них. Коли всі ваші проекти мають загальні інсталяції, дуже важко визначити, для якого з проектів потрібні встановлені пакети – залежності, пов’язані з кожним проектом.

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

  5 найкращих навчальних курсів Microsoft Teams для адміністраторів команд

Що станеться з існуючою установкою?

Його буде видалено та замінено версією Django, яку ви встановили. У нових стабільних версіях деякі функції могли бути застарілими. І ваші попередні проекти Django можуть працювати не так, як очікувалося.

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

Як працюють віртуальні середовища

Наразі ми стикалися з труднощами, пов’язаними зі встановленням пакетів у глобальному середовищі розробки (загальносистемні встановлення). Це спонукає нас зрозуміти, як віртуальні середовища вирішують це обмеження.

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

Повертаючись до прикладу проектів Django, у віртуальних середовищах ви можете запускати як проекти Django 2.2, так і Django 4 – без будь-яких конфліктів. Це пояснюється тим, що інсталяції Django більше не є загальносистемними, а обмежені віртуальними середовищами відповідних проектів.

По суті, віртуальні середовища — це ізольовані середовища, які містять і код, і залежності для проекту.

Переваги віртуальних середовищ

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

  • Віртуальні середовища забезпечують ізольоване середовище розробки для окремих проектів, що дозволяє нам інсталювати лише пакети, необхідні для конкретного проекту.
  • Оскільки віртуальні середовища проектів є незалежними та ізольованими, різні проекти можуть використовувати різні версії однієї бібліотеки — залежно від вимог. З віртуальними середовищами вам не доведеться турбуватися про системні дозволи для встановлення бібліотек і налаштування середовища розробки.
  • Після встановлення пакетів у віртуальному середовищі ви можете записати залежності проекту у файл requirements.txt. Це дозволяє іншим розробникам копіювати розробку та середовище проекту та інсталювати необхідні пакети за допомогою однієї команди.

Наразі ви дізналися, як працюють віртуальні середовища та які переваги їх використання. Давайте розглянемо деякі популярні інструменти, які можна використовувати для створення та керування віртуальними середовищами на Python.

#1. Virtualenv

Virtualenv є одним із широко використовуваних інструментів для створення та керування віртуальними середовищами для проектів Python. Підмножина функцій virtualenv доступна в пакеті venv. Однак пакет virtualenv швидший і розширюваний порівняно з venv.

#2. Pipenv

З pipnev ви маєте як функції віртуального середовища virtualenv, так і можливості керування пакетами pip. Він використовує файли керує pip для керування залежностями проекту всередині віртуального середовища за допомогою.

Ви можете спробувати pipenv прямо з браузера на цьому ігровому майданчику Pipenv.

  Як відключити розділений екран в Safari

#3. Конда

Якщо ви використовуєте дистрибутив Anaconda Python для розробки, ви можете використовувати conda для керування пакетами та створення віртуальних середовищ.

Щоб дізнатися більше, перегляньте цей вичерпний посібник із керування середовищами за допомогою conda.

#4. Поезія

Poetry — це інструмент керування пакетами, який дозволяє вам керувати залежностями в усіх проектах Python. Щоб почати використовувати Poetry, вам потрібно встановити Python 3.7 або пізнішу версію.

#5. Venv

Як згадувалося, venv пропонує піднабір функціональних можливостей virtualenv, але має ту перевагу, що він вбудований у стандартну бібліотеку Python, починаючи з Python 3.3.

Він легко доступний із інсталяцією Python і не потребує встановлення зовнішніх пакетів. Ми використовуватимемо його в цьому посібнику для створення та роботи з віртуальними середовищами. ✅

Як створити віртуальне середовище Python в Ubuntu

💬 Щоб виконувати решту цього підручника, вам потрібно мати локальну інсталяцію Python 3. Переконайтеся, що ви використовуєте Python 3.5 або пізнішу версію.

У цьому розділі описано кроки для створення та активації віртуальних середовищ на машині Ubuntu Linux. Ті самі кроки можна використовувати і в інших дистрибутивах Linux.

Для полегшення керування давайте створимо каталог проекту та завантажимо його; Ми створимо venv у цьому каталозі.

$ mkdir my_project
$ cd my_project

Загальний синтаксис для створення віртуального середовища для вашого проекту Python такий: python3 -m venv . Після виконання цієї команди у поточному робочому каталозі буде створено віртуальне середовище під назвою my_env:

$ python3 -m venv my_env

Як активувати та інсталювати пакети у віртуальному середовищі

Після створення віртуального середовища ви можете активувати його та інсталювати в ньому необхідні пакети. Щоб активувати віртуальне середовище, ви можете виконати таку команду:

$ source my_env/bin/activate

Після активації віртуального середовища ви можете запустити команду pip list, щоб отримати список встановлених пакетів:

$ pip list

Наразі ми не інсталювали жодного пакета, тож ви зможете бачити setuptools і pip, встановлені за замовчуванням, у кожному зі створених віртуальних середовищ.

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

Тепер, коли ви активували віртуальне середовище, ви можете встановити в ньому пакети для конкретного проекту за допомогою pip. Як приклад, давайте встановимо Python requests, один із найбільш завантажуваних пакетів Python, який надає кілька корисних функцій для надсилання HTTP-запитів для роботи з веб-API.

$ pip install requests

Коли ви інсталюєте бібліотеку запитів, ви побачите, що бібліотека запитів інсталюється разом із усіма пакетами, які їй потрібні.

  Як підключити контролер PS4 або Xbox до вашого iPhone або iPad

$ pip list

Ви можете скористатися командою pip freeze і перенаправити вивід у файл requirements.txt, як показано:

$ pip freeze > requirements.txt

Якщо ви перевірите вміст поточного каталогу проекту, ви побачите, що файл requirements.txt створено.

$ ls
# my_env requirements.txt

Ви можете дезактивувати віртуальне середовище після роботи над проектом, виконавши таку команду:

$ deactivate

Як створити віртуальне середовище Python у Windows

Загалом для розробки краще використовувати середовище Linux. Якщо ви користуєтеся комп’ютером Windows, ви можете розглянути можливість використання підсистеми Windows для Linux (WSL) для налаштування термінального середовища Ubuntu для локальної розробки.

Якщо ви користуєтеся комп’ютером Windows, ви можете використовувати Windows PowerShell або командний рядок і створювати віртуальні середовища за допомогою такої команди:

> python -m venv <path-to-venv>

Як активувати віртуальне середовище

Активація віртуальних середовищ на машині Windows відрізняється залежно від того, чи працюєте ви в командному рядку чи Windows PowerShell.

Якщо ви перебуваєте в командному рядку, виконайте таку команду, щоб активувати віртуальне середовище:

> <path-to-venv>Scriptsactivate.bat

Крім того, якщо ви використовуєте Windows PowerShell, виконання цієї команди активує віртуальне середовище:

> <path-to-venv>ScriptsActivate.ps1

Ви можете встановити всі необхідні пакети у віртуальному середовищі.

Щоб дезактивувати віртуальні середовища, можна запустити команду deactivate — як у командному рядку, так і в Windows PowerShell.

Висновок

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

Серед широко використовуваних інструментів для створення віртуальних середовищ і керування ними в Python ви навчилися використовувати venv – який вбудовано в стандартну бібліотеку Python для створення та активації віртуальних середовищ.

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

Коли ви починаєте свій наступний проект Python, обов’язково використовуйте віртуальні середовища для кращого керування залежностями. Щасливого кодування!🎉