- Установка и использование virtualenv в Python
- Отличия virtualenv и venv
- Установка virtualenv с помощью pip
- Создание виртуальной среды
- Деактивации virtualenv
- Удаление виртуальной среды
- Решение популярных ошибок
- Использование виртуальных сред venv и virtualenv для создания окружения Python
- Для чего нужно виртуальные среды?
- Установка и создания окружения с virtualenv
- Активация и выход из окружения
- Управление средами через virtualenvwrapper
- Настройки для Linux
- Настройки для Windows
- Основные команды
- Создание виртуальных сред со встроенным пакетом Python venv
- Создание виртуального окружения в Pycharm
- Создание списка установленных пакетов Requirements.txt
- Русская Исследовательская IT-Лаборатория
- Веб-разработка, анализ данных и электронная инженерия
- Создание виртуального окружения для python3 на Ubuntu
Установка и использование virtualenv в Python
virtualenv — это инструмент для создания изолированной среды Python. У такой среды есть отдельна установка python, при ее использовании загруженные библиотеки недоступны другим. Можно сделать так, чтобы у этой среды не было доступа к глобальным библиотекам.
Virtualenv — простой и рекомендованный способ настройки среды Python.
Отличия virtualenv и venv
Venv — это пакет, который идет по умолчанию с Python 3.3+. В версии Python 2 его нет.
Virtualenv — более продвинутая библиотека. По ссылке можно ознакомиться с основными отличиями.
Виртуальную среду можно создать и с помощью venv, но все-таки рекомендуется установить и использовать virtualenv для полноценной работы.
Установка virtualenv с помощью pip
Для установки virtualenv с Python нужно использовать pip. Желательно предварительно обновить этот инструмент.
Или используйте python3 , если python ссылается на 2 версию.
После обновления можно установить и virtualenv:
Создание виртуальной среды
1. Перейдите в директорию, в которой вы хотите создать виртуальную среду(например папка проекта).
2. Создайте виртуальную среду, при необходимости указав конкретную версию Python. Следующая команда создает virtualenv с именем venv_name и использует флаг -p , чтобы указать полный путь к версии Python:
Назвать среду можно как угодно
После выполнения команды вы увидите логи:
Эта команда создает локальную копию среды. Работая с ней, важно не забывать об активации, чтобы использовались нужные версии конкретных инструментов и пакетов.
Если при установке возникла ошибка setuptools pip failed with error code 1` error , используйте следующую команду, чтобы решить проблему:
3. Для активации новой виртуальной среды используйте команду:
После этого название текущей среды отобразится слева от символа ввода: (venv_name) username@desctop:
Теперь при установке любого пакета с помощью pip он будет размещаться в папках этой среды, изолированно от глобальной установки.
Деактивации virtualenv
После завершения работы деактивировать виртуальную среду можно с помощью команды deactivate .
Введите ее и приставка venv_name пропадет. Вы вернетесь к использованию глобально версии python.
Удаление виртуальной среды
Для удаления виртуальной среды достаточно просто удалить папку проекта. Для этого используется следующая команда:
Решение популярных ошибок
Ошибки при создании virtualenv. При попытке создать virtualenv с Python 3.7 могут возникнуть следующие ошибки.
Для их исправления нужно добавить следующую строку в .bash_profile.
Использование полного пути к виртуальной среде. Может быть такое, что при использовании команды virtualenv будет использована не та версия. Для решения проблемы нужно лишь задать полные пути как к virtualenv, так и к Python в системе.
А получить их можно с помощью этой команды:
Источник
Использование виртуальных сред venv и virtualenv для создания окружения Python
Виртуальные среды (окружения) используются в Python 3 контроля версионности пакетов. Кроме контроля версий среды используют для использования разных интерпретаторов. Самих пакетов, которые создают виртуальные окружения много. В этой статье речь пойдет про venv, virtualenv и virtualenvwrapper.
Навигация по посту
Для чего нужно виртуальные среды?
При создании скрипта или программы вы часто используете сторонние модули (пакеты). Если в последующем потребуется перенос программы на другой компьютер, то вы можете столкнуться с двумя проблемами:
- Нужные пакеты отсутствуют на новом компьютере и придется проверять каждый файл программы для их поиска. Либо получить список установленных пакетов через «pip list» на старом компьютере, который выведет множество лишних модулей.
- Даже если количество пакетов или файлов программ маленькое, или вы его создали отдельно, то вы все равно можете столкнуться с проблемами в версиях. Пакеты могли быть обновлены, а методы и классы изменены.
Использование виртуальных сред избавляет вас от этих проблем. В таком виртуальной среде находится свой интерпретатор, свой pip и все пакеты относятся только к нему. Так же, весь проект, можно перенести как папку на другой компьютер без ошибок.
Кроме этого вы можете запускать разные версии Python в разных виртуальных средах, что сильно упрощает работу.
Установка и создания окружения с virtualenv
Самый популярный пакет, который используется для создания виртуальных сред в Python, это virtualenv. Для его установки на Windows выполните:
Для установки на Linux системах, для Python 3, понадобится выполнить такую команду:
Если вы не будете использовать sudo, то в зависимости от версии ОС у вас появятся разные ошибки. В CentOS установка не выполнится вовсе, а в Ubuntu не будет добавлен путь в переменную окружения:
- PermissionError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.6’
- Command ‘virtualenv’ not found, but can be installed with: sudo apt install virtualenv
Далее, вне зависимости от того используете ли вы Linux или Windows, вы можете выполнить команду получения справки:
Я использую Python 3.6, и так я создам окружение в папке projectname/venv:
Способ выше устанавливает окружение относительно текущего пути. Если нужно установить на другом диске или каталоге, то можно использовать абсолютный путь. Так же не обязательно указывать параметр «-p» если вы используете одну версию Python. Вариант как это может быть сделано на Windows:
Само расположение виртуального окружения рекомендуется создавать в одной папке вместе разрабатываемым приложением. Такую структуру будет легче сопровождать. Я обычно придерживаюсь такой структуры:
Активация и выход из окружения
Для того что бы виртуальное окружения начало работать его нужно активировать. В разных ОС это делается по-разному.
В случаях с Linux указываем полный путь до venv/bin/activate:
Для активации в Windows, в папке venv\Scripts есть несколько файлов:
- activate.ps1 — для активации через Powershell;
- activate.bat — для активации через CMD.
Для активации просто укажите полный путь до файла. Например:
О том что вы находитесь в виртуальном окружении свидетельствуют следующие надписи:
Вы так же можете сравнить количество установленных пакетов внутри виртуального окружения с тем, что установлено вне:
Теперь вы можете устанавливать пакеты, которые будут работать только в этой среде.
Для выхода из окружения, за исключением запуска с помощью CMD, используйте команду:
Для CMD нужно указать путь до файла «venv\Scripts\deactivate.bat».
Управление средами через virtualenvwrapper
Если вы создаете множество виртуальных сред, например для тестирования в разных версиях Python, вы можете использовать virtualenvwrapper. Этот пакет представляет собой надстройку для virtualenv для более удобной работы и устанавливается отдельно.
Благодаря этому пакету мы сможем запускать ваши окружения так:
Для Windows нужно установить следующий пакет:
Для Linux нужно так же использовать sudo:
Настройки для Linux
Virtualenvwrapper хранит все окружения в одном месте. Это место определяется через переменную WORKON_HOME в Linux и по умолчанию равно директории ‘/home/пользователь/.virtualenvs’. Если вы хотите изменить это расположение — выполните команду экспорта с нужным путем:
Следующая команда добавит скрипты в домашний каталог для удобной работы:
При выполнении предыдущей команды у меня появилась ошибка:
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader
Она исправилась добавлением переменной в env с путем до нужного интерпретатора:
Настройки для Windows
Все виртуальные среды, которые будут созданы, по умолчанию будут располагаться по пути «C:\Users\%USERNAME%\Envs». Если вам нужно изменить расположение, то создайте переменную WORKON_HOME с нужной директорией:
Важный момент, в случае с Windows, команды virtualenvwrapper не будут выполняться Powershell. Команды работают только через CMD.
Основные команды
Далее мы можем использовать следующие команды (основные):
- mkvirtualenv — создание окружения;
- lsvirtualenv — отображение списка окружений;
- rmvirtualenv — удаление;
- workon — переключение между виртуальными средами;
- deactivate — выход из текущего окружения.
Так мы создадим виртуальную среду:
Так выйдем из созданной среды:
Если нужно использовать другую версию Python:
Создание виртуальных сред со встроенным пакетом Python venv
Ранее, до версии Python >= 3.6 базовая установка интерпретатора шла вместе с пакетом pyenv, но на данный момент он считается устаревшим и более не поддерживается. На его смену пришел venv. В некоторых версиях ОС (Ubuntu/Debian) может потребоваться его отдельная установка:
Проверить, то что пакет venv установлен, можно так:
Следующая команда создаст виртуальную среду:
Выбранная версия Python и стандартные библиотеки будут скопированы в указанную папку.
Активация окружения выполняется следующим образом:
Для выхода из окружения:
Создание виртуального окружения в Pycharm
В некоторых IDE, например Pycharm, консоль встроенная и по умолчанию у вас будет запускаться интерпретатор выбранный в настройках. В Pycharm вы можете создать или изменить проект привязав его к определенному интерпретатору.
Виртуальную среду можно создать при создании нового проекта. Для этого нужно зайти по следующему пути:
В новом окне выбрать название проекта, место для копирования, интерпретатор и нажать кнопку создания окружения:
Для настройки окружения для старых проектов нужно зайти в настройки:
Во вкладе «Python Interpreter» будет выбор из существующих интерпретаторов (1). Либо можно создать новый (2):
Создание списка установленных пакетов Requirements.txt
Используя виртуальные окружения можно легко создавать файл, в котором будут собраны все названия и версии пакетов для определенного проекта. Этот подход используется для удобства работы, так как одной программой мы сразу установим нужные пакеты.
Так мы получим список пакетов, установленных в виртуальном окружении, в формате читаемом pip:
Следующим способом мы экспортируем этот список в файл Requirements.txt (способ подходит для Bash/CMD/Powershell):
На другом компьютере/среде мы можем этот список быстро проверить и установить отсутствующие пакеты следующей командой:
Источник
Русская Исследовательская IT-Лаборатория
Веб-разработка, анализ данных и электронная инженерия
Создание виртуального окружения для python3 на Ubuntu
Традиционно для создания виртуального окружения для Python используется модуль virtualenv. Но, начиная с версии Python 3.3, появилась возможность создания «легкого» виртуального окружения с помощью встроенного модуля pyvenv.
1. Для начала можно проверить переменную $PATH, которая указывает, какие пути прописаны для запуска из командной оболочки:
Согласно данной информации python установлен как в пакете Anaconda (/home/pavel/installed/anaconda3/bin), так и в системном варианте (/usr/bin).
По умолчанию (если просто набрать python ) запускается python3 из пакета Anaconda, а если я хочу получить доступ к системному python, нужно набрать: /usr/bin/python3 .
Если у вас не установлены никакие дополнительные пакеты, то для вызова системного python3 достаточно набрать в командной строке: python3 .
2. Если не установлена поддержка виртуального окружения, то есть система выдает при попытках создания (см. п.3) следующее сообщение:
The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.
Тогда нужно установить:
3. Далее переходим в выбранную папку, и создаем в ней поддержку виртуального окружения:
В результате в директории work/python будет создана папка myvenv с необходимым содержимым для поддержки виртуального окружения.
4. Активировать виртуальное окружение можно командой (из папки, где оно создано):
В результате в bash в начале командной строки появиться надпись (myvenv).
5. Для деактивации используется команда:
6. Можно убедится, что pip и python работают в контейнере:
7. Если виртуальное окружение создавалась для работы с Django, то далее нужно выполнить следующие команды:
При подготовке статьи использовались следующие источники:
Любые замечания, пожелания и дополнения к статье пишите в комментариях.
Дополнительная информация (добавлена 21-03-2017).
Виртуальное окружение можно создавать и используя установленную Anaconda с помощью менеджера пакетов Conda. При этом есть возможность гибко выбирать, какую версию python нужно использовать.
Все доступные версии python можно проверить командой:
Чтобы создать виртуальное окружение с именем venv и самым последним python из 3-й ветки, достаточно выполнить:
Файлы окружения будут располагаться в папке envs внутри директории с Anaconda.
Активация и деактивация виртуального окружения производится с помощью следующих команд:
Посмотреть все имеющиеся виртуальные окружения, созданные с помощью Conda можно командой:
Если Anaconda не прописана в системном пути $PATH, то для запуска созданного Conda виртуального окружения может потребоваться набирать длинную команду, например:
Это, конечно, неудобно. Кроме того, если запуск виртуального окружения нужен для работы с Jupyter Notebook, то проще сделать небольшой файлик со скриптом на bash в рабочей директории.
Первая строчка создает файл. Вторая — присваивает ему атрибут «исполняемый». Третья — запускает редактор для внесения правок в файл. В редакторе добавляем и сохраняем следующий код:
Из консоли такой файл запускается командой bash begin.sh или ./begin.sh . Можно его запускать двойным кликом левой клавишей мышки и из файлового менеджера Nautilus. Если этого не происходит, нужно перейти в раздел «Параметры» — «Поведение» и поставить галочку «Каждый раз спрашивать» в разделе «Исполняемые текстовые файлы».
Добавлено 29-03-2017:
Для дополнительного чтения и понимания сути виртуального окружения есть хорошая статья (и комментарии) — https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/. В ней дается вводная информация и базовые сведения по работе с pip и virtualenv.
Для удобства организации виртуальных окружений и быстрой работы с ними есть надстройка virtualenvwrapper.
Источник