Для чего нужно виртуальное окружение python

Виртуальные окружения в Python

Python знаменит своей обширной стандартной библиотекой и девизом «батарейки в комплекте» (batteries included). Даже из коробки Python позволяет удобно и быстро решить огромный пласт задач, например, например, работа с файлами, запуск простого веб-сервера, работа с электронной почтой, парсинг XML и JSON, и так далее. Во всяком случае, это намного удобнее, чем писать shell-скрипты 😅

Кроме того, у Python имеется огромная экосистема сторонних библиотек, поддерживаемых сообществом энтузиастов. Эти библиотеки реализуют отсутствующую в стандартной поставке функциональность, либо пере-реализуют уже имеющуюся, но удобнее. Если у вас возникла потребность в какой-то функциональности, то почти наверняка кто-то уже написал для этого библиотеку, и нужно просто погуглить.

Установка сторонней библиотеки

Каждый начинающий программист знает, как установить библиотеку. Набираем

и понеслась! Множество библиотек в своих инструкциях по установке именно так и предлагают их устанавливать. Это и правда работает, это и правда так просто, но есть нюансы. В этом месте закопаны очень популярные грабли, по которым прошлось множество начинающих питонистов, в том числе и я.

Как pip устанавливает пакеты

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

Давайте подробнее разберем третий шаг. Установка пакета — звучит загадочно и сложно, но на самом деле ничего сложного здесь не происходит. pip просто распаковывает zip-архив в определенное место (это справедливо для формата wheel, для установки пакетов в других форматах могут потребоваться дополнительные действия, но давайте разберем самый распространённый и простой случай). Куда именно происходит установка? Это можно узнать, выполнив следующую команду:

В списке sys.path можно увидеть директорию site-packages — именно туда и будет установлена библиотека. Давайте в этом убедимся.

До установки пакета:

После установки пакета:

Как видим, в директорию site-packages добавилась библиотека requests вместе со всеми своими зависимостями.

Важные мысли, которые я пытаюсь донести:

А это значит, что в один интерпретатор Python нельзя установить две версии одной библиотеки одновременно. При установке новой версии предыдущая «перезатирается». Просто как если бы вы распаковали другой архив с совпадающими именами файлов в то же самое место.

Боль — это жизненный опыт

Что же будет, если вам понадобится работать над двумя проектами, которые будут требовать разных, не совместимых между собой версий одной и той же библиотеки? Возможно, между этими версиями в библиотеку были внесены какие-то крупные ломающие изменения, например, переименовались методы/функции или изменился набор аргументов.

Вы просто не сможете работать над такими проектами одновременно. Установка зависимостей одного проекта сломает другой, и наоборот. При переключении между проектами придётся каждый раз устанавливать зависимости нужного проекта, что довольно легко забыть сделать.

Ситуация кажется маловероятной, но я гарантирую, что рано или поздно это случится, если устанавливать зависимости всех своих проектов в один интерпретатор. Всё усугубляется тем фактом, что прямые зависимости вашего проекта тянут за собой свои зависимости (под-зависимости), те, в свою очередь, тоже могут от чего-то зависеть (под-под-зависимости). В итоге вы получаете целое дерево зависимостей. И если где-то в этом дереве окажется библиотека не той версии, что ожидалось, то весь проект может начать очень странно работать. Вы получите такие эзотерические ошибки, которых еще никто в интернете до вас не встречал. Если всё сразу сломалось, то считайте, что легко отделались — по крайней мере, так довольно просто понять, в чём проблема. Но бывают и ситуации намного хуже, когда приложение просто начинает немножко иначе работать, без каких-либо ошибок, и возможно придется потратить долгие часы на траблшутинг, чтобы найти настоящую причину.

Надеюсь, я убедил вас, что устанавливать зависимости нескольких проектов в один интерпретатор — это очень-очень плохо. Но как же тогда правильно?

Виртуальные окружения

Как создавать виртуальные окружения

Начиная с Python версии 3.5 (на данный момент это самая старая из официально поддерживаемых версий языка, так что справедливо ожидать, что как минимум везде установлен Python 3.5 или новее), создать виртуальное окружение стало очень просто:

Например, допустим, что мы работаем над проектом blog_source :

В директорию env будет скопирован тот самый интерпретатор, при помощи которого виртуальное окружение и создавалось. Т.е. если

то в виртуальном окружении будет та же самая версия:

Активируем окружение

Посмотрим, что внутри директории env :

Обратите внимание, что в директории bin есть некий файл activate в нескольких вариантах для разных шеллов. Это и есть «точка входа» в виртуальное окружение. Просто создать виртуальное окружение мало, нужно его активировать. Но сначала проверим, какие python и pip (исполняемые файлы) используются в обычном режиме работы:

Это мой обычный Python, вне виртуального окружения, назовём его глобальным. Теперь активируем виртуальное окружение:

Для Windows процесс активации будет отличаться (допустим, что виртуальное окружение создано в C:\src\blog_source ):

Теперь проверим еще раз, какие python и pip используются:

Посмотрите на пути — мы внутри виртуального окружения! Теперь можно смело устанавливать любые пакеты, и это никак не повлияет на глобальный Python или на другие виртуальные окружения:

Можно запускать любые файлы, и они будут иметь доступ к установленным пакетам:

IDE тоже нужно настроить, указав путь к bin/python внутри виртуального окружения, тогда редактор сможет лучше вам помогать.

И мы видим, что команда python снова вызывает глобальный интерпретатор. При этом виртуальное окружение осталось в своей директории, оно просто не активно. В следующий раз, когда будет нужно поработать с виртуальным окружением, не забудьте снова его активировать.

Виртуальное окружение можно полностью удалить, когда оно перестанет быть нужным:

В идеале, у вас должна быть возможность в любой момент удалить и пересоздать виртуальное окружение заново, для этого храните список зависимостей проекта и содержите его в актуальном состоянии (например, в requirements.txt ). В процессе разработки могут случиться всякие казусы с зависимостями, и иногда проще пересоздать виртуальное окружение заново, чем пытаться починить сломанное.

Вот так можно работать с виртуальными окружениями в Python. Всегда устанавливайте зависимости проектов только в изолированные виртуальные окружения. Не смешивайте зависимости разных проектов в одном окружении.

Ничего не устанавливайте в глобальный интерпретатор

Установка начинается, прогресс-бары заполняются, но в итоге всё завершается чем-то типа такого:

Может нарушить целостность системы.

Подробнее про этот метод установки читайте здесь.

установить программу через пакетный менеджер ОС, например:

Выводы

Да, виртуальные окружения — определенно не самая удобная часть разработки на Python, и уж точно не самая простая тема, к этому просто нужно привыкнуть. Несколько раз повторил, выработал привычку — в целом, ничего сложного. Кроме того, экосистема Python развивается очень быстро, и я надеюсь, что скоро правильная установка пакетов и управление виртуальными окружениями станут намного легче. Уже сейчас можно пользоваться такими инструментами, которые в некоторой мере прячут от пользователя виртуальные окружения:

Стабильных вам зависимостей и кода без багов!

Источник

Виртуальное окружение в Python

В этой статье мы рассмотрим как используется и для чего нужно виртуальное окружение в Python.

Введение

Виртуальное окружение это изолированная пространство для приложений в Python, которое дает возможность иметь свой набор зависимостей не мешая другим проектам.

Так же оно позволяет задействовать различные версии интерпретатора в нескольких проектах.

Создание окружения в Python выполняется с помощью встроенного модуля venv. Venv — это модуль из стандартной библиотеки не требующий никакой дополнительной установки.

Виртуальное окружение создается под конкретные проекты, для его создания потребуется знать путь до корневого каталога.

Создание директории для проекта

Необходимо выполнить команду в терминале

mkdir test_project создает папку с именем test_project, а cd test_project перемещается в эту директорию.

Это то же самое, что создать пустую папку и открыть ее.

В директории test_project будут храниться все файлы проекта и это будет местом для виртуального окружения.

Создание виртуального окружения

Чтобы создать виртуальную среду, нужно вызвать модуль venv из интерпретатора и указать директорию для служебных файлов.

После выполнения будет готово окружение с версией Python по умолчанию.

.venv — имя окружения. Можно называть как угодно. По совместительству является директорией в которой хранится вся информация окружения.

Если в операционной системе есть несколько версий Python и требование использовать какую – то конкретно, создайте виртуальную среду следующим образом

Активация виртуальной среды

Просто создать виртуальное окружение недостаточно, так же его необходимо активировать

Активация виртуальной среды в Windows

Открываем командную оболочку или powershell, переходим в директорию проекта и выполняем команду

Активация виртуальной среды в macOS и Linux

Достаточно открыть терминал в директории проекта и выполнить команду

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

Вот и все. Затем вы можете установить, обновить и удалить пакеты с помощью pip. Установленные пакеты будут изолированы только для данного проекта.

Заключение

Сегодня мы рассмотрели как используется и для чего необходимо виртуальное окружение в Python. Если у вас есть дополнительные вопросы, не стесняйтесь задавать их в комментариях.

Источник

Виртуальные окружения Python и инструменты для управления ими

Виртуальное окружение Python – это «автономное дерево каталогов, которое содержит пакет установки для конкретной версии Python, а также ряд дополнительных пакетов» (цитата из официальной документации).

Посмотрите на следующий комикс xkcd :

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Мораль этой истории такова: используйте виртуальные окружения Python осознанно и организованно. Старайтесь не загрязнять вашу системную среду, иначе она станет беспорядочной и крайне неудобной для использования.

Поскольку использование виртуальных окружений потенциально может привести к беспорядку, возникло множество инструментов для управления ими. В этой статье мы рассмотрим некоторые из них:

Используйте встроенный venv

Давайте разберём это подробнее. Мы используем исполняемый файл Python для версии Python, которую хотим использовать в виртуальном окружении. Это может быть python, как указано выше, или python3, python3.8, python3.9 и даже pypy3.

Если вместо этого вы видите что-то вроде «The virtual environment was not created successfully because ensurepip is not available» или другую ошибку, связанную особенностями вашего дистрибутива, почитайте, как установить pip и venv.

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Активация виртуального окружения

Теперь вы можете активировать виртуальное окружение с помощью следующей команды:

После активации предложение командной строки должно измениться: в нем появится имя каталога виртуального окружения. Что-то вроде:

Это (.venv) (или другое выбранное вами имя каталога) является признаком того, что вы активировали свое виртуальное окружение. Она не останется активной после перезагрузки компьютера или запуска другой оболочки или открытия новой вкладки терминала. Привыкайте запускать скрипт активации.

Редакторы/IDE иногда могут управлять виртуальным окружением и даже автоматически активировать его. Есть инструкции VSCode, плагины для Atom, для Vim, для Sublime и, конечно же, PyCharm.

После активации вы сможете попробовать сделать так:

Выполнение скриптов Python в виртуальном окружении

Вы можете выполнять скрипты Python двумя способами:

Деактивация виртуального окружения

Чтобы выйти из виртуального окружения, отключите его. Это можно сделать так:

Для повторной активации повторите приведенные выше инструкции.

Установка пакетов

Повторно активируйте виртуальную среду и установите что-нибудь с помощью pip :

Сначала пакеты и зависимости нужно установить. После этого вы сможете импортировать и использовать эти пакеты.

Вы можете выйти из системы, забыть о Python, вернуться через несколько недель и повторно активировать свое виртуальное окружение. Пакеты по-прежнему будут установлены. Но только в этом виртуальном окружении. Они не будут захламлять вашу системную среду Python или другие виртуальные окружения.

Уничтожение виртуального окружения

«Мое виртуальное окружение не подлежит ремонту», – скажете вы? Такое случается. Это безопасность использования виртуальных окружений. Что делать?

Затем воссоздайте виртуальное окружение, как описано выше.

virtualenv

Использование virtualenv

Несколько хороших команд virtualenv:

Установка virtualenv

Вы можете установить virtualenv из репозиториев менеджера пакетов (например, используя apt или dnf ).

Poetry

virtualenv и venv полезны и просты, они делают то, что нам нужно и делают это хорошо. Poetry – ещё один инструмент для удобного управления не только виртуальными окружениями, но и проектами и зависимостями.

Установка Poetry

Вы можете использовать официальную документацию для установки данного модуля.

Решите, где Poetry будет размещать виртуальные окружения

Это глобальная настройка Poetry позволяет размещать виртуальные окружения в папках проектов.

Взаимодействие с виртуальным окружением Poetry

Poetry предназначен для управления проектами, поэтому для создания нового виртуального окружения сначала создайте каталог проекта и войдите в него:

Когда виртуальное окружение потребуется в первый раз, оно будет создано автоматически.

Чтобы активировать виртуальное окружение, сделайте следующее:

Добавление пакетов с помощью Poetry

В отличие от традиционного подхода, в Poetry мы не используем pip install для установки пакетов. Вместо этого используйте poetry add :

Эта команда установит arrow и запишет его как зависимость в файле pyproject.toml.

Pipenv

Интересно, что в официальном руководстве Python по установке пакетов прямо говорится, что «Управление несколькими виртуальными окружениями напрямую может быть утомительным, поэтому…», а затем упоминается Pipenv.

Несмотря на эту почти официальную рекомендацию, мы продолжаем пользоваться virtualenv, так как он надежен и прост, или Poetry, потому что он обеспечивает отличное управление проектами и зависимостями.

Тем не менее, Pipenv уже некоторое время пользуется популярностью и заслуживает внимания и уважения. Если вам он нравится, у вас могут быть на то веские причины.

Установка Pipenv

Хотя документация Pipenv рекомендуют использовать pip или ваш менеджер пакетов, мы настоятельно рекомендуем использовать pipx для установки Pipenv:

Взаимодействие с виртуальным окружением Pipenv

При использовании Pipenv важно сначала создать каталог для вашего проекта. (Это вообще хороший шаг при работе с любым инструментом).

Когда виртуальное окружение потребуется в первый раз, оно будет создано автоматически.

Чтобы активировать виртуальное окружение, выполните следующее:

Установка пакетов с помощью Pipenv

Pyflow

Если вам нужен инструмент для упрощения работы с виртуальными окружениями, мы бы посоветовали virtualenv или Poetry.

Но если вы хотите попробовать что-то малоизвестное, но довольно многообещающее, особенно если вы имеете дело с разными версиями Python, тогда стоит обратить внимание на Pyflow.

Возьмите Poetry, добавьте изящное управление версиями Python, снимите шляпу с conda и напишите все это на Rust – и результат будет немного похож на Pyflow. Время покажет, вырастет ли Pyflow и получит ли признание сообщества.

Установка Pyflow

Чтобы установить Pyflow, перейдите на страницу релизов Pyflow, загрузите и установите пакет, соответствующий вашей платформе.

Взаимодействие с виртуальным окружением Pyflow

Чтобы создать новое виртуальное окружение в Pyflow, сначала создайте проект:

Уникальная особенность Pyflow: он предложит вам версию Python. Кроме того, если вы укажете версию, которая еще не установлена, он установит ее для вас довольно быстро (не компилируя с нуля, как это делает pyenv).

Затем сделайте новый каталог текущим рабочим каталогом:

Когда виртуальное окружение потребуется в первый раз, оно будет создана автоматически.

Чтобы запустить Python в виртуальном окружении, сделайте следующее:

Не существует способа активации виртуального окружения, специфичного для Pyflow. Покопаться в установленном виртуальном окружении можно так:

Это для Windows Powershell. Для Mac или Linux используйте следующее:

Установка пакетов в Pyflow

pyenv-virtualenv

Если вы хотите использовать virtualenv для управления виртуальными окружениями, а также управлять несколькими версиями Python, вам может подойти pyenv-virtualenv.

Не используйте pyenv (или любой другой инструмент управления версиями Python), если вы не уверены, что он вам действительно нужен.

pyenv не предназначен для управления виртуальными окружениями. Он управляет версиями Python. Другими словами, чтобы понять, сможет ли pyenv решить какие-либо из ваших проблем, сперва оцените свои потребности и возможности самого pyenv.

Установка pyenv-virtualenv

pyenv-virtualenv – это плагин для pyenv, поэтому его необходимо установить.

pyenv не работает в Windows. Существует форк pyenv для Windows. Однако, похоже, он несовместим с плагинами pyenv, такими как pyenv-virtualenv.

Взаимодействие с виртуальным окружением с помощью pyenv-virtualenv

Чтобы создать новое виртуальное окружение с помощью pyenv-virtualenv, выполните следующую команду:

Если вы не уверены, какие версии Python доступны для использования pyenv:

После того, как вы успешно создали виртуальное окружение, оно должно появиться в списке:

Виртуальные окружения имеют по две записи: длинные и более короткие псевдонимы.

Чтобы активировать виртуальное окружение вручную, можно использовать короткий псевдоним:

Отключение виртуального окружения:

Conda

Conda – это не просто еще один пакет Python или менеджер окружений. Это альтернативная экосистема Python. Репозиторий пакетов conda отличается от репозитория PyPI, используемого большинством менеджеров пакетов. В репозитории Conda

1500 пакетов. В репозитории PyPI

Установка Conda

Если вам нужна большая установка Python и все инструменты, обратите внимание на Anaconda. Miniconda предоставляет инструмент командной строки conda и только те зависимости, которые необходимы для начала работы. Обычно этого хватает. Если вы не уверены, что вам подходит, Anaconda или Miniconda, есть полезное сравнение.

От редакции Pythonist. Можем предложить статью «Развертываем Anaconda – дистрибутив Python для data science».

Используя Bash, можно сделать следующее:

/.condarc с этой настройкой в ваш домашний каталог.

Взаимодействие с виртуальным окружением в Conda

После создания вы можете активировать виртуальное окружение:

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

Чтобы отключить виртуальное окружение:

Команды conda activate и conda deactivate работают одинаково независимо от оболочки или платформы.

Установка пакетов с помощью Conda

Одна крутая вещь о Conda: она точно скажет вам, где и что будет делать.

Hatch

Hatch немного похож на Pyflow в том, что он модный (например, использует pyproject.toml), непонятный и выполняет множество функций.

Установка Hatch

Взаимодействие с виртуальным окружением в Hatch

Чтобы создать новое виртуальное окружение с Hatch, сначала создайте проект:

hatch new автоматически создает виртуальное окружение. Вы можете сделать новый каталог текущим рабочим:

Установка пакетов в Hatch

Заключение

Виртуальные окружения Python — отличная вещь для удобной и безопасной работы. В этой статье мы разобрали самые разные инструменты Python для управления виртуальными окружениями. Выбор инструмента – дело субъективное. Прежде чем решить, подумайте о том, кто вы, что делаете с помощью Python и каковы ваши потребности и желания.

Вот несколько замечаний, которые могут помочь вам сориентироваться при выборе:

Источник

Установка и использование virtualenv в Python

virtualenv — это инструмент для создания изолированной среды Python. У такой среды есть отдельна установка python, при ее использовании загруженные библиотеки недоступны другим. Можно сделать так, чтобы у этой среды не было доступа к глобальным библиотекам.

Virtualenv — простой и рекомендованный способ настройки среды Python.

Отличия virtualenv и venv

Venv — это пакет, который идет по умолчанию с Python 3.3+. В версии Python 2 его нет.

Virtualenv — более продвинутая библиотека. По ссылке можно ознакомиться с основными отличиями.

Виртуальную среду можно создать и с помощью venv, но все-таки рекомендуется установить и использовать virtualenv для полноценной работы.

Установка virtualenv с помощью pip

Для установки virtualenv с Python нужно использовать pip. Желательно предварительно обновить этот инструмент.

После обновления можно установить и virtualenv:

Создание виртуальной среды

1. Перейдите в директорию, в которой вы хотите создать виртуальную среду(например папка проекта).

Назвать среду можно как угодно

После выполнения команды вы увидите логи:

Эта команда создает локальную копию среды. Работая с ней, важно не забывать об активации, чтобы использовались нужные версии конкретных инструментов и пакетов.

3. Для активации новой виртуальной среды используйте команду:

После этого название текущей среды отобразится слева от символа ввода: (venv_name) username@desctop:

Теперь при установке любого пакета с помощью pip он будет размещаться в папках этой среды, изолированно от глобальной установки.

Деактивации virtualenv

Введите ее и приставка venv_name пропадет. Вы вернетесь к использованию глобально версии python.

Удаление виртуальной среды

Для удаления виртуальной среды достаточно просто удалить папку проекта. Для этого используется следующая команда:

Решение популярных ошибок

Ошибки при создании virtualenv. При попытке создать virtualenv с Python 3.7 могут возникнуть следующие ошибки.

Использование полного пути к виртуальной среде. Может быть такое, что при использовании команды virtualenv будет использована не та версия. Для решения проблемы нужно лишь задать полные пути как к virtualenv, так и к Python в системе.

А получить их можно с помощью этой команды:

Источник

Python: виртуальное окружение, виртуальная среда

Статья расскажет, зачем нужна виртуальная среда в проектах на Python. Что это такое, как она используется, на что стоит обратить внимание.

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Виртуальное окружение — для чего оно?

Язык программирования Python, как многие другие языки, обладает своим уникальным способом загрузки и хранения пакетов (модулей). Это имеет как плюсы, так и минусы. Дело в том, что есть несколько расположений, где сохраняются пакеты, установленные в системе. Большая часть их хранится в дочернем каталоге пути, а он, в свою очередь, находится в sys.prefix.

На том же Маке можно без проблем найти, где конкретно sys.prefix указывает на применение оболочки Python:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Нас интересуют в большей мере сторонние пакеты, которые установлены посредством easy_install либо pip install. В большинстве случаев они находятся в одной из директорий, на которую указывает site.getsitepackages:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Все эти нюансы следует знать, чтобы понимать ситуацию, ведь по дефолту каждый системный объект станет применять одинаковые каталоги при хранении пакетов. Может показаться, что это несущественно. Да, если речь идёт о системных пакетах, которые считаются частью стандартной библиотеки. Совсем другое дело, если речь идёт о сторонних пакетах.

Представьте простую ситуацию: у вас 2 пакета (ProjectA and ProjectB). Оба связаны зависимостью с одной и той же библиотекой — ProjectC. Если же мы начнём запрашивать различные версии ProjectC, могут возникнуть затруднения. ProjectA может запросить одну версию (1.0), а ProjectB — другую, более новую (2.0). В этом и заключается большая проблема «Питона» — он не различает версии в каталоге «site-packages».

Раз проекты хранятся с учётом их названий, различий между версиями нет, в результате чего ProjectA и ProjectB будут применять одну и ту же версию, а это не есть хорошо.

Как раз здесь на сцену и выходит виртуальное окружение (среда) Python, делая это совместно с инструментами virtualenv/ven.

Так что же такое виртуальное окружение (virtual environment)?

Основной задачей виртуального окружения в языке Python является создание изолированной среды для «Пайтон»-проектов. Что это значит: — любой проект способен иметь собственные зависимости; — зависимости второго проекта не оказывают влияния на зависимости первого и наоборот.

Если вернуться к примеру выше, становится очевидным, что следует просто разделить виртуальные окружения для ProjectA и ProjectB. В итоге каждая отдельная среда будет зависеть от любой версии ProjectC и не зависеть друг от друга.

Профит налицо, ведь отсутствуют ограничения на то, во скольких экземплярах будет виртуальное окружение, ведь они являются обычными директориями, где содержится несколько скриптов. А ещё их довольно легко создать, используя средства командной строки — речь идёт об инструментах virtualenv либо pyenv для Python.

Применение виртуальной среды

Если у вас Python 3, модуль venv должен быть уже установлен. Если же нет, вопрос можно решить, выполнив установку Python-инструмента virtualenv посредством pip:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Внимание! Следует понимать, что venv и virtualenv — это, по сути, 2 разных инструмента, имеющих несколько различий в плане команд.

Создадим новый каталог, с которым потом станем работать, следующей командой:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Теперь создадим новое виртуальное окружение внутри каталога:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Внимание! По дефолту ни один из существующих сторонних пакетов не включён.

В Python 3 подход venv имеет преимущество, вынуждающее применять определённую версию Python-интерпретатора, который нужен для создания виртуальной среды. Зато вы избежите проблем, выясняя, какая именно инсталляция «Пайтон» базируется в новом виртуальном окружении.

В вышеуказанном примере данная команда создаст каталог «env», структура которого будет выглядеть приблизительно так:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Разберём, что в папках, подробнее: • bin – это файлы, взаимодействующие с виртуальным окружением; • include – это С-заголовки, которые компилируют Python-пакеты; • lib – это копия Python-версии совместно с папкой «site-packages», где находится каждая зависимость.

Идём дальше. У нас в наличии копии (символические ссылки) ряда Python-инструментов. Данные файлы применяются, чтобы команды и «Пайтон»-код выполнялись в контексте созданной среды, что позволяет достичь изоляции от глобальной среды.

Весьма интересны скрипты activate, находящиеся в bin. Они применяются в целях настройки вашей оболочки для применения исполняемого файла окружения «Пайтон» и его сайтовых пакетов по дефолту.

Для использования этих пакетов среды в условиях изоляции, надо их активировать, выполнив активацию простой командой:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Здесь важно учесть, что ваше приглашение командной строки уже носит префикс вашего окружения (для нашего примера это env). Речь идёт об индикаторе, свидетельствующем, что в данный момент времени env активен. Это, в свою очередь, подтверждает то, что выполнимые «Пайтон»-файлы задействуют пакеты и настройки лишь из этого виртуального окружения.

Если надо показать изолированный пакет, что называется, в деле, подойдёт модуль bcrypt. Давайте скажем, что он установлен где-то в системе, а не в нашем виртуальном окружении.

Перед проверкой вернёмся назад в контекст «system» с помощью команды deactivate:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Теперь сеанс оболочки вернулся в нормальное состояние, а команда python будет ссылаться на общую Python-инсталляцию. Сделать это можно, когда заблагорассудиться, но после того, как закроете определённое виртуальное окружение. Далее следует установить bcrypt и воспользоваться им в целях хэширования пароля:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

А теперь давайте посмотрим, что случится, если попробовать ту же самую команду, когда виртуальное окружение активно:

Для чего нужно виртуальное окружение python. Смотреть фото Для чего нужно виртуальное окружение python. Смотреть картинку Для чего нужно виртуальное окружение python. Картинка про Для чего нужно виртуальное окружение python. Фото Для чего нужно виртуальное окружение python

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *