Рубрики
Без рубрики

Укрощение зависимостей Python с Virtualenv

Предпосылки Этот пост делает предположение, что вы знакомы с Python и установите … Помечено Python, управление.

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

Этот пост делает предположение, что вы знакомы с Python и устанавливая пакеты с помощью инструмента командной строки PIP. Это также предполагает, что у вас уже есть Python2, либо Python3, установленный в вашей системе.

Все команды будут работать на Windows, Mac и Linux, если не указано иное.

Вступление

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

Сначала это работает нормально, но может привести к проблемам быстро в качестве возраста ваших проектов. Представьте себе следующий сценарий.

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

Теперь, что вы делаете? Может быть, вы обновите до 2.0, но теперь ваше первое приложение сломано. Поэтому, возможно, вы просто обновите код для использования 2.0, либо, возможно, вы удалите и переустановите по мере необходимости.

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

Введите virtualenv.

VirtualenV – это пакет Python для создания виртуальных сред Python для вашего проекта.

Так что это значит? Концептуально думать об этом как в коробке, чтобы сохранить одно приложение. Внутри этой коробки вы также будете сохранить изолированную копию Python, PiP и любых пакетов ваших потребностей в приложении.

Чтобы пересмотреть пример более раннего, это позволит нам иметь одну среду для применения А с awesomeypythonlib 1.0 и секунду с версией 2.0 для нашего приложения Б. Давайте посмотрим на реальный мир.

Установка VirtualenV.

Установка VirtualenV проста в качестве пирога и может быть просто установлена через PIP на Windows, Mac или Linux.

$ pip install Virtualenv

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

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

Начнем с создания нового каталога, то мы инициализируем новую среду VirtualenV.

$ mkdir pyproject && cd pyproject
$ virtualenv venv

Это создаст новый каталог под названием Венв Внутри нашего каталога. Это будет содержать наш изолированный экземпляр Python и Packages. Следующим шагом является активация среды и установить пакет.

$ source venv/bin/activate
$ (venv) pip install requests

Пользователи Windows В Windows создается пакетный скрипт для активации среды. Команда выглядит следующим образом:

C:\PATH_TO_PROJECT\venv\bin\activate.bat

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

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

$ deactivate

Предупреждение о терминальных сессиях

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

Когда активна среда VirtualenV, вы увидите имя окружающей среды в терминале, например, примеры команд выше.

Альтернативные версии Python

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

Virtualenv имеет ваше обратно в этой ситуации, как и позволяет вам создать среду с любым интерпретатором Python, который вы установили в вашей системе, используя -PYPHON Флаг командной строки.

Вот пример того, что похоже.

$ virtualenv venv --python=python2.7

Теперь вы можете работать на Python2 и Python3 бок о бок без какой-либо из обычной головной боли.

Заключение

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

Оригинал: “https://dev.to/jodylecompte/taming-python-dependencies-with-virtualenv-2233”