Блог компанії 3v-Hosting

Встановлення та використання Virtualenv у Python3

Адміністрування

8 хв.


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

 

 


Для чого потрібні віртуальні середовища

Мова Python стає дедалі популярнішою, і розробникам доводиться жонглювати кількома проєктами одночасно. Для цих проєктів можуть бути потрібні різні версії пакетів або навіть самого інтерпретатора Python. Коли залежності конфліктують, це може призвести до непередбачених помилок, що робить обслуговування проєкту складним завданням. Віртуальні середовища являють собою ізольовану «пісочницю», в якій залежності для кожного проєкту зберігаються окремо, що дає змогу уникнути проблем із сумісністю. Наприклад, для одного проекту може знадобитися Django==3.2, а для іншого - Django==4.0; віртуальні середовища дають змогу цим двом версіям співіснувати.

 

 


Введення до virtualenv

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

Давайте розглянемо процес інсталяції virtualenv, створення оточень і ефективного управління ними.

 

 


Встановлення Virtualenv за допомогою Python3

Перш ніж приступити до створення оточень, нам потрібно встановити virtualenv. Ось покрокова інструкція:

    Перевірте версію Python: Переконайтеся, що у вас встановлено Python3. Ви можете перевірити це, виконавши команду:

        python3 --version

    Якщо Python3 не встановлено, дотримуйтесь офіційного посібника зі встановлення Python.

    Встановіть pip: pip - це менеджер пакетів Python, який поставляється в комплекті з Python3. Якщо його немає, встановіть його, завантаживши файл get-pip.py з офіційного сайту і запустивши його:

        python3 get-pip.py


    Встановіть virtualenv: Використовуйте pip для глобального встановлення virtualenv:

        pip install virtualenv


    Якщо ж ви віддаєте перевагу працювати в локальному оточенні, використовуйте:

        python3 -m pip install --user virtualenv

    Перевірте установку: Переконайтеся, що virtualenv встановлено, перевіривши його версію:

        virtualenv --version


Тепер ви готові до створення та управління віртуальними середовищами за допомогою Python3.

 

 

 

Створення віртуального середовища в Python3

Створити ізольоване середовище за допомогою virtualenv дуже просто. Ось кілька простих кроків:

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

        cd /path/to/your/project


    Створіть віртуальне середовище: Виконайте наступну команду, щоб створити нове віртуальне середовище з ім'ям venv (або будь-яким іншим ім'ям, яке ви віддаєте перевагу).

        virtualenv -p python3 venv

    Ця команда використовує опцію -p для явної вказівки інтерпретатора Python3. Якщо у вашій системі за замовчуванням встановлено Python3, ви можете опустити параметр -p python3.


    Активуйте середовище: Щоб використовувати щойно створене середовище, активуйте його:

        На Unix/Mac:

            source venv/bin/activate


        У Windows:

            venv\Scripts\activate

    Після активації ви побачите префікс (venv) у запрошенні оболонки, що вказує на те, що ви тепер працюєте у віртуальному середовищі.


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

        pip install <ім'я_пакета>

 

 


 

Інші корисні статті з адміністрування:


    - Pip: Основи керування пакетами в Python

    - Як видаляти образи, контейнери та томи в Docker

    - Як встановити Node.js на Ubuntu 22.04

    - Встановлення та використання Docker в Ubuntu 22.04

 


 

Використання Python3-Venv як альтернативи

Модуль venv у Python3 надає вбудовану функціональність для створення віртуальних середовищ, не вимагаючи окремого встановлення virtualenv. Хоча python3-venv обмежений порівняно з virtualenv, його часто буває достатньо для простої розробки.

    Встановлення python3-venv: Перш ніж використовувати venv, переконайтеся, що модуль встановлено. У Debian/Ubuntu ви можете встановити його за допомогою:

        sudo apt install python3-venv


    Створення віртуального середовища за допомогою venv:

        python3 -m venv myenv

    Ця команда створить віртуальне середовище з іменем myenv. Активуйте його, виконавши описані вище дії.


    Порівняння virtualenv і venv: Основною перевагою virtualenv над venv є ширша сумісність зі старими версіями Python і додаткові можливості налаштування. Однак python3-venv вбудований у Python3, що робить його зручним і швидким для стандартних випадків використання.

 

 

 

Керування віртуальними середовищами

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

Список встановлених пакетів:

    pip list

Ця команда надає список усіх встановлених пакетів у середовищі, дозволяючи відстежувати залежності.


Збереження залежностей: Щоб відтворити середовище або поділитися ним із членами команди, використовуйте pip freeze для експорту залежностей у файл вимог:

    pip freeze > requirements.txt


Щоб відтворити оточення в іншому місці, просто встановіть залежності з цього файлу:

    pip install -r requirements.txt


Оновлення пакетів: Щоб оновити всі пакети до останніх версій, ви можете використовувати:

    pip list --outdated | awk 'NR>2 {print $1}' | xargs -n1 pip install -U

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


Деактивація середовища: Коли ви закінчите, деактивуйте оточення за допомогою команди:

    deactivate .


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

    rm -rf venv

 

 

 

Загальні проблеми та усунення неполадок

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

    Помилки дозволів: Якщо у вас виникають проблеми з правами доступу, особливо під час глобальної інсталяції, спробуйте використати команду --user з pip для локальної інсталяції або розгляньте можливість використання віртуальних середовищ для ізоляції.
    Віртуальне середовище не активується: Переконайтеся, що ви використовуєте правильну команду активації для вашої операційної системи. Крім того, користувачам Windows може знадобитися дозволити виконання сценаріїв, виконавши команду:

        Set-ExecutionPolicy Unrestricted -Scope Process

 

 

 

Найкращі практики для віртуальних середовищ

    Окремі середовища для кожного проекту: Створіть унікальне середовище для кожного проекту, щоб уникнути конфліктів залежностей.
    Використовуйте файли вимог: Зберігайте залежності у файлах requirements.txt для спрощення реплікації та спільної роботи.
    Оновлюйте Python: Оновлення Python може підвищити безпеку і надати нові можливості. Під час оновлення Python створіть нове віртуальне середовище, оскільки старі пакети можуть бути несумісними.
    Використовуйте псевдоніми для активації: Активацію можна спростити, додавши псевдонім у конфігурацію оболонки. Наприклад, додайте такий рядок у .bashrc для полегшення доступу:

        alias activate_venv="source /path/to/venv/bin/activate»

 

 


Висновок

Використовуйте virtualenv або python3-venv. Це підвищить вашу продуктивність і поліпшить узгодженість проєктів під час розробки на Python. Віртуальні середовища ізолюють залежності та забезпечують «чистий аркуш» для кожного проєкту, запобігаючи конфліктам, полегшуючи управління пакетами та сприяючи більш організованому процесу розробки. Володіння віртуальними середовищами - основоположна навичка для будь-якого розробника Python, який працює над кількома проектами або співпрацює з іншими. Виберіть virtualenv або вбудований python3-venv, і ви зможете встановлювати, налаштовувати та керувати віртуальними середовищами в Python3, забезпечуючи плавну й ефективну розробку.