Блог компании 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, обеспечивая плавную и эффективную разработку.