Перейти к содержимому

Как активировать виртуальное окружение venv python

  • автор:

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

Представь, что у тебя два проекта. Для одного требуется Джанго версии 1.6, а для другого – 1.10. Установленной можно иметь только одну версию пакета.

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

virtualenv

Решение в установке всех пакетов для каждого проекта отдельно. Модули можно устанавливать не глобально, а в отдельную кучку для каждого проекта.

Такая кучка называется виртуальным окружением.

Умение пользоваться виртуальным окружением – мастхев, без него даже на Девмане будет неуютно.

Прочитай про виртуальные окружения из “Автостопом по Питону”. Там всё, что надо знать про virtualenv.

$ virtualenv название_папки_виртуального_окружения $ source название_папки_виртуального_окружения/bin/activate 

virtualenvwrapper

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

Тут помогает virtualenvwrapper: он привносит структуру и порядок в работу с виртуальными окружениями.

Как установить и пользоваться написано по ссылке выше.

venv

Стандартное решение для создания виртуальных окружений в Питоне версии 3.3 и старше. Различия с virtualenv минимальны. Ссылка на документацию.

  • Идет в комплекте с Питоном3.
  • Считается решением по умолчанию, а значит, меньше проблем с совместимостью.
  • Создаёт framework-build Питона вместо обыкновенного для OSX. Такой билд необходим для правильной работы некоторых библиотек, к примеру, matplotlib и pyplot. Подробнее об этом можно почитать здесь.
  • Нет надстроек, написанных для virtualenv .

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

$ python3 -m venv --copies /полный/путь/до/папки/виртуального/окружения $ # --copies активирует копирование файлов вместо создания symlinks. С последними не дружит PyCharm. $ # в Ubuntu доступна также короткая запись — alias pyvenv $ pyvenv папка/для/виртуального/окружения 

Если удобного псевдонима в ОС нет, то его можно создать самостоятельно. Добавь себе в .bashrc (для Linux) или в .bash_profile (для Маков) строку:

pyvenv()  /usr/local/bin/python3 -m venv --copies ./$1; > 

Бонус для маководов

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

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

У меня так: нажимаю ⌃⌘D – и я уже в папке Девмана с активированным окружением. Красота!

Это делается в настройках, вкладке Profiles. Вот как у меня:

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

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

Follow us on Google Plus Follow us on rss

Продолжаем серию “ Python .Уроки”. На этот раз мы изучим, что такое виртуальные окружения в Python , зачем они нужны и как их использовать. Познакомимся с инструментами virtualenv и venv для создания виртуальных окружений.

  • Что такое виртуальное окружение и зачем оно нужно?
  • ПО позволяющее создавать виртуальное окружение в Python
  • virtualenv
    • Установка virtualenv
    • Создание виртуального окружения
    • Активация виртуального окружения
    • Деактивация виртуального окружения
    • Создание виртуального окружения
    • Активация виртуального окружения
    • Деактивация виртуального окружения

    Что такое виртуальное окружение и зачем оно нужно?

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

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

    Во-вторых : может возникнуть необходимость в том, чтобы запретить вносить изменения в приложение на уровне библиотек, т.е. вы установили приложение и хотите, чтобы оно работало независимо от того обновляются у вас библиотеки или нет. Как вы понимаете, если оно будет использовать библиотеки из глобального хранилища ( /usr/lib/pythonXX/site-packages ), то, со временем, могут возникнуть проблемы.

    В-третьих : у вас просто может не быть доступа к каталогу /usr/lib/pythonXX/site-packages .

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

    ПО позволяющее создавать виртуальное окружение в Python

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

    Начнем с инструментов, которые входят в PyPI . Если кто не знает PyPI – это Python Package Index ( PyPI ) – репозиторий пакетов Python , доступный для любого разработчика и пользователя Python ( ).

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

    Инструмент для изоляции версий Python . Чаще всего применяется, когда на одной машине вам нужно иметь несколько версий интерпретатора для тестирования на них разрабатываемого вами ПО.

    virtualenvwrapper

    Virtualenvwrapper – это обертка для virtualenv позволяющая хранить все изолированные окружения в одном месте, создавать их, копировать и удалять. Предоставляет удобный способ переключения между окружениями и возможность расширять функционал за счет plug-in ’ов.

    Существуют ещё инструменты и plug-in ’ы, выполняющие работу по изоляции частей системы Python , но мы их не будем рассматривать.

    Инструменты, входящие в стандартную библиотеку Python .

    Этот модуль появился в Python3 и не может быть использован для решения задачи изоляции в Python2 . По своему функционалу очень похож на virtualenv . Если вы работаете с третьим Python , то можете смело использовать данный инструмент.

    virtualenv

    Будем рассматривать работу с virtualenv в рамках операционной системы Linux . Для Windows все будет очень похоже, за исключением моментов, связанных со спецификой этой ОС: названия и расположение каталогов, запуск скриптов оболочки и т.п.

    Установка virtualenv

    Virtualenv можно установить с использованием менеджера pip (ссылка на статью), либо скачать исходные коды проекта и установить приложение вручную.

    Установка с использованием pip.

    Для установки virtualenv откройте консоль и введите следующую команду:

    > pip install virtualenv

    Установка из исходного кода проекта.

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

    Введите в консоли следующий набор команд:

    > curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz > tar xvfz virtualenv-X.X.tar.gz > cd virtualenv-X.X > [sudo] python setup.py install

    X.X – это версия приложения, ее вам нужно знать заранее.

    Если использовать ключевое слово sudo , инструмент будет установлен глобально, в противном случае – локально.

    Мы рекомендуем вам использовать pip для установки virtualenv .

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

    Виртуальное окружение создается следующей командой:

    > virtualenv PRG1

    PRG1 в данном случае – это имя окружения.

    После выполнения данной команды, в текущем каталоге будет создан новый каталог с именем PRG1 . Разберем более подробно его содержимое.

    RPG1/bin/ – содержит скрипты для активации/деактивации окружения, интерпретатор Python , используемый в рамках данного окружения, менеджер pip и ещё несколько инструментов, обеспечивающих работу с пакетами Python . В Windows, это каталог PRG1\Scripts

    PRG1/include/ и PRG1/lib/ – каталоги, содержащие библиотечные файлы окружения. Новые пакеты будут установлены в каталог PRG1/lib/pythonX.X/site-packages/ .

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

    Для активации виртуального окружения воспользуйтесь командой (для Linux ):

    > source PRG1/bin/activate

    для Windows команда будет выглядеть так:

    > PRG1\Scripts\activate.bat

    Команда source выполняет bash- скрипт без запуска второго bash- процесса.

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

    virtual environment

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

    Если вы создадите виртуальное окружение с ключем –system-site-packages :

    > virtualenv --system-site-packages PRG1

    то в рамках окружения PRG1 вы будите иметь доступ к глобальному хранилищу пакетов:

      • в Linux : /usr/lib/pythonX.X/site-packages
      • в Windows : \PythonXX\Lib\site-packages

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

      Для деактивации виртуального окружения (выхода из него), введите команду deactivate для Linux или deactivate.bat , если вы работаете в Windows .

      > deactivate

      virtual environment deactivate

      venv

      Устанавливать venv не нужно, т.к. он входит в стандартную библиотеку Python . Т.е. если вы установили себе Python , то venv у вас уже есть. Помните, что venv работает только в Python3 !

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

      Для создания виртуального окружения с именем PRG2 с помощью venv выполните следующую команду:

      > python -m venv PRG2

      В результате будет создан каталог PRG2 со структурой похожей на ту, что была описана для virtualenv . Функциональное назначение каталогов тоже самое.

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

      Активация виртуального окружения в Linux выполняется командой:

      >source PRG2/bin/activate
      >PRG2\Scripts\activate.bat

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

      Деактивация выполняется командой deactivate (работает как в Windows, так и в Linux )

      >deactivate

      Полезные ссылки

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

      P.S.

      Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

      Виртуальные окружения — Python: Настройка окружения

      Вы уже знаете, что pip устанавливает пакеты в одно из двух окружений — в общесистемное или пользовательское. Интерпретатор Python при импорте модуля или пакета ищет его сначала в пользовательском окружении, затем — в общесистемном. Такая последовательность позволяет пользователю иметь нужные именно ему версии библиотек и Python-программ.

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

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

      Устройство виртуальных окружений

      Каждое виртуальное окружение представляет собой директорию. Ее содержимое структурно напоминает общесистемное окружение — поддиректории соответственно названы и наполнены. Давайте рассмотрим пример:

      env env ├── bin │ ├── activate │ … │ ├── pip │ … │ └── python3 -> …/python3 ├── lib │ └── python3.6 │ └── site-packages │ ├── pip │ │ ├── … │ … │ └── setuptools-40.6.2.dist-info │ ├── … … 

      В директории виртуального окружения находится директория bin/ , внутри которой расположены:

      • Копия интерпретатора под именем python3 (символическая ссылка на оригинал)
      • Копия исполняемого файла pip

      В соседней директории по пути lib/python3.6/site-packages есть библиотеки, уже установленные в окружение. Как правило, только что созданное окружение имеет:

      • Установленный пакет pip (исполняемый файл bin/pip — его точка входа)
      • Пакет Setuptools

      Эти два пакета составляют необходимый минимум для разработки проекта на Python.

      При работе в окружении нужно запускать не системные Python и pip, а исполняемые файлы из директории bin . Когда интерпретатор Python находится в окружении, он знает, где находятся все доступные пакеты. Интерпретатор находит их по относительному пути ../lib/python3.6 . В таком случае копия pip из директории bin/ устанавливает пакеты в это же окружение, не затрагивая систему. Получается та самая изоляция, о которой мы говорили в начале урока.

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

      Вручную создавать всю описанную иерархию директорий и файлов не нужно — для этого есть специальный модуль venv .

      В macOS и Windows этот модуль входит в поставку Python. На Ubuntu его нужно установить отдельно командой:

      sudo apt install python3-venv 

      Проверим, что модуль установился и готов к использованию:

      -m venv --help usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR . ] 

      Обычно окружение создается командой python3 -m venv имя_окружения . Давайте попробуем создать виртуальное окружение и установить туда пакет cowsay :

      Вы можете видеть, что пакет устанавливается вместе с точкой входа, которую можно вызвать командой first_venv/bin/cowsay . Также сам пакет становится доступен интерпретатору, но только тому, что был запущен из окружения.

      В таком виде виртуальное окружение уже можно использовать полноценно. Но постоянно вводить команды с префиксом first_venv/bin/ не очень удобно. Есть способ упростить вызов команд, доступных в окружении — это активация.

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

      При создании окружения в поддиректорию bin помещается сценарий оболочки, который на macOS и Ubuntu называется activate , а на Windows — activate.bat . Чтобы выполнить этот сценарий, нужно вызвать команду:

      • на macOS и Ubuntu:
      source first_venv/bin/activate 
      • на Windows:
      \> first_venv\Scripts\activate.bat 

      В команде выше обратите внимание, что в Windows поддиректория с исполняемыми файлами называется не bin , а Scripts .

      На Ubuntu активация выглядит следующим образом:

      После активации отпала необходимость указывать путь до вызываемого исполняемого файла. Теперь cowsay и python вызываются без префикса, но это все те же команды из окружения.

      Еще изменилось приглашение оболочки: в нем стало отображаться имя окружения. Это работает на macOS и Ubuntu и всегда напоминает, что мы находимся в виртуальном окружении.

      Деактивация окружения делается командой deactivate , которая становится доступна после активации.

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

      Открыть доступ

      Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

      • 130 курсов, 2000+ часов теории
      • 1000 практических заданий в браузере
      • 360 000 студентов

      Наши выпускники работают в компаниях:

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

      Начиная с версии Python 3.3. Модуль venv предоставляет поддержку создания легковесного виртуального окружения с собственными директориями, изолированными от общих системных. Каждое виртуальное окружение имеет свой собственный набор бинарных исполняемых файлов и может иметь собственный независимый набор установленных пакетов.

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

      # Создать директорию проекта mkdir next-porject cd next-project # Инициализировать окружение python3 -m venv .venv # Активировать окружение source .venv/bin/activate 

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

      следует исключить вирутальное окружение из Git, добавив путь в
      файл .gitignore

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

      source .venv/bin/activate

      Можно проверить путь к исполняемому файлу после активации: which python .

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

      # Активировать окружение # source .venv/bin/activate python -m pip install --upgrade pip setuptools 

      Теперь можно начинать работу, все как обычно

      # Активировать окружение # source .venv/bin/activate # установить пакеты pythom -m pip install django # инициализация проекта django django-admin startproject config .

      «Выключить» окружение можно командой deactivate

      Sign up for more like this.

      Enter your email

      Работа с форками

      Работа с форками

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

      19 нояб. 2023 г. 1 min read

      slimrb

      Преобразование Slim в Erb. slimrb консольная утилита запускается в командной строке. Использование Slim в качестве основного шаблонизатора очень удобно и продуктивно. Но накладывает ограничения на форматирование. Не всегда удобно, когда в команде работают специалисты разного уровня подготовки. Для сложных и объемных страниц может быть сложным. Slim — супер решение, но

      13 июня 2023 г. 1 min read

      Nuxt: взгляд в 2023

      Результатом многолетней работы стал не только выпуск новой версии Nuxt (3), но новая архитектура, функциональная серверная среда (Nitro) и новая организационная экосистема в Github (UnJs)

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

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

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar