Как активировать виртуальное окружение venv python
Перейти к содержимому

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

  • автор:

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

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

Изменено в Python 3.11: Когда создаются новые виртуальные среды Python, то для для определения путей внутри среды venv используется схема установки sysconfig . Когда Python работает в виртуальной среде, по умолчанию используется та же схема установки. Это означает, что нижестоящие дистрибьюторы могут изменить схему установки по умолчанию, без изменения поведения самих виртуальных сред. Сторонний код, который также может создавать новые виртуальные среды, должен делать то же самое.

Если в операционной системе по умолчанию используется Python 3 и не нравится функциональность встроенного модуля venv , то модуль virtualenv можно установить как скомпилированный пакет операционной системы.

# Для пользователей Ubuntu, Debian $ sudo apt install python3-virtualenv $ virtualenv --version virtualenv 20.0.17 from /usr/lib/python3/dist-packages/virtualenv/__init__.py

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

Обычные инструменты установки, такие как setuptools и pip работают в виртуальных средах как и ожидается. Другими словами, когда виртуальная среда активна, то пакеты Python устанавливаются в виртуальную среду без необходимости явно указывать это.

Когда виртуальная среда активна, т. е. работает интерпретатор Python виртуальной среды, атрибуты sys.prefix и sys.exec_prefix указывают на базовый каталог виртуальной среды, тогда как sys.base_prefix и sys.base_exec_prefix останутся указывать на базовую установку Python, ту, из которой была создана виртуальная среда. Если виртуальная среда не активна, то sys.prefix совпадает с sys.base_prefix , а sys.exec_prefix будет совпадать с sys.base_exec_prefix , все они указывают на установку Python не в виртуальной среде.

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

Работая в командной оболочке, пользователи могут активизировать виртуальную среду, запустив сценарий активации в каталоге исполняемых файлов виртуальной среды source /bin/activate , который добавляет каталог виртуальной среды для исполняемых файлов в переменную окружения PATH для работающей оболочки.

Создание виртуальной среды в OS Linux/Windows.

Создание виртуальной среды в OS Linux выполняется с помощью команды venv :

# в виртуальную среду установится системная версия Python3 # т.е. версия установленная по умолчанию в вашей системе $ python3 -m venv /path/to/new/virtual/environment --prompt Python3.9

Представленная выше команда создает целевой каталог environment , создавая все не существующие родительские каталоги. После этого python поместит в него файл pyvenv.cfg с ключом, который будет указывать на ту версию Python, для которой запущена эта команда. Она также создает подкаталог bin в Unix или Scripts в Windows, содержащий копию/символическую ссылку двоичных файлов Python в зависимости от платформы или аргументов, используемых во время создания среды. Вышеуказанная команда также создает изначально пустой подкаталог lib/pythonX.Y/site-packages в Unix, в Windows это Lib\\site-packages . Если указан существующий каталог виртуальной среды, то он будет использован повторно.

Если, например, вы собрали Python3.11 из исходников в папку /opt/python-3.11.0/ и хотите именно его поставить в виртуальную среду, то команда будет выглядеть следующим образом:

# в виртуальную среду установится версия Python # расположенная по пути /opt/python-3.11.0/bin/python3.11 $ /opt/python-3.11.0/bin/python3.11 -m venv ~/.python3.11.0 --prompt Python3.11

Представленная выше команда установит версию Python, который был собран из исходников в каталоге /opt/python-3.11.0/ , в папку виртуальной среды ~/.python3.11.0 . Папка виртуальной среды будет расположена в скрытой (точка впереди названия папки) домашней ( ~/ ) директории пользователя. Параметр —prompt Python3.11 создаст, после активации, дополнительную подсказку о том, что вы находитесь в виртуальной среде Python3.11.

Активировать установленный Python в такой виртуальной среде можно командой:

$ source ~/.python3.11.0/bin/activate # в скобках - та самая подсказка, о которой говорилось выше (Python3.11) :~$

Установить дополнительные модули/пакеты для этой виртуальной среды можно только если она (виртуальная среда) активирована. Например, установка фреймворка pytest будет выглядеть следующим образом:

# команда установит модуль `pytest` # в папку виртуальной среды ~/.python3.11.0 (Python3.11) :~$ python3 -m pip install -U pytest

Для создания виртуальной среды в OS Windows, необходимо вызвать команду venv следующим образом:

c:\>c:\Python39\python -m venv c:\path\to\myenv --prompt Python3.9

В качестве альтернативы, если настроены переменные PATH и PATHEXT для установки Python:

c:\>python3 -m venv c:\path\to\myenv

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

После создания виртуальной среды ее можно «активировать» с помощью сценария, расположенном каталоге виртуальной среды. Вызов сценария зависит от платформы:

Примечание к таблице: venv должен быть заменен путем к каталогу, содержащему виртуальную среду:

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

Вы можете «деактивировать» виртуальную среду, набрав команду deactivate в своей оболочке. Точный механизм зависит от платформы и является внутренней деталью реализации. Обычно используется скрипт или функция оболочки.

Примеры:

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

$ python3 -m venv ~/env

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

$ source ~/env/bin/activate (env) docs-python@IdeaCentre:~$

Установка пакетов в виртуальную среду env :

(env) $ python3 -m pip install pymysql # или (env) $ pip install pymysql

Выполнение сценариев в виртуальной среде env :

(env) $ python ~/env/test.py

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

(env) $ deactivate # произойдет выход из виртуального окружения $

Не нужно специально активировать среду если сценарий запускается с указанием полного пути до интерпретатора Python:

$ ~/env/bin/python3 ~/env/test.py

Если команда python3 -m venv запускается с опцией -h, то можно увидеть доступные опции:

$ python3 -m venv -h usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR . ] . .
  • ENV_DIR — Каталог для создания виртуальной среды.
  • -h , —help — показать справочное сообщение и выйти,
  • —system-site-packages — предоставляет виртуальной среде доступ к системным пакетам site-packages ,
  • —symlinks — при установке виртуальной среды создает символические ссылки вместо копирования файлов,
  • —copies — при установке виртуальной среды копирует файлы вместо создания символических ссылок,
  • —clear — перед созданием виртуальной среды удаляет содержимое каталога, если он уже существует,
  • —upgrade — Обновите каталог виртуальной среды, чтобы использовать установленную версию Python,
  • —without-pip — пропускает установку или обновление pip в виртуальной среде (pip загружается по умолчанию),
  • —prompt PROMPT — предоставляет альтернативный префикс приглашения для этой среды.

Примечания:

  • Хотя в Windows поддерживаются символические ссылки, они не рекомендуются. Особо следует отметить, что двойной щелчок по python.exe в проводнике файлов разрешит символическую ссылку и проигнорирует виртуальную среду.
  • В Microsoft Windows может потребоваться включить сценарий Activate.ps1 , установив политику выполнения для пользователя. Вы можете сделать это, введя следующую команду PowerShell: PS C: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Созданный файл pyvenv.cfg также содержит ключ include-system-site-packages , для которого установлено значение true , если venv запускается с параметром —system-site-packages , в противном случае значение будет false .

Если не указана опция —without-pip , то будет вызываться модуль ensurepip для начальной загрузки pip в виртуальную среду.

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

Представь, что у тебя два проекта. Для одного требуется Джанго версии 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 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

Ruby: nil? empty? blank? present?

В Ruby on Rails доступны несколько методов для проверки существования значения или состояния объекта. Ruby предлагает nil?, empty? и Rails добавляет blank? и present?. Каждый из методов имеет свою логику и назначение. И конечно предполагает применение в нужном контексте. nil? Метод класса Object в Ruby. Что означает его повсеместную доступность.

12 дек. 2023 г. 1 min read

Vim — проверка орфографии

Vim проверенный временем, просто и одновременно мощный редактор. Одна из позитивных возможностей — проверка орфографии. Допустим, что настройки редактора в домашней директории пользователя в файле ~/.vimrc. Добавим: set spell spelllang=ru_ru,en_us Можно это сделать и в редакторе, выполнив команду: :set spell spelllang=ru_ru Но если редактором пользуемся

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

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

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

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

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

Python предлагает широкий спектр возможностей и имеет множество вариантов для применения. Благодаря своей простоте, читаемости и мощной экосистеме он стал одним из самых популярных языков программирования в мире.

Python используется в таких сферах, как:

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

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

Виртуальное окружение Python (Python virtual environment) – это инструмент, позволяющий создавать изолированные среды для выполнения и разработки приложений на языке Python.

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

Используя виртуальное окружение Python, вы получаете:

  1. Изоляцию зависимостей. Каждое виртуальное окружение имеет собственный независимый набор зависимостей и пакетов, что позволяет избежать конфликты между различными версиями пакетов.
  2. Управление версиями Python. Вы можете создавать и использовать различные версии Python в разных виртуальных окружениях, переключаясь между версиями, а также тестируя совместимость кода с новыми версиями Python.
  3. Чистоту проекта. Виртуальное окружение помогает поддерживать проект организованным, так как все зависимости и пакеты проекта хранятся в отдельной директории. Это упрощает управление и развертывание проектов.
  4. Переносимость. Вы можете передать виртуальное окружение на другую машину или другим разработчикам, что позволяет вести совместную работу над проектом.

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

Услуга VPS/VDS хостинг на Linux подойдет для проектов любой сложности:

  • разработка приложений,
  • создание почтового сервера,
  • размещение интернет-магазина,
  • развертывание продуктов 1С,
  • размещение CRM-систем.

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

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

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

pip install virtualenv

Далее следуйте инструкции:

  1. Откройте командную строку и перейдите в каталог, в котором будет создана виртуальная среда.
  2. Выполните команду:

python -m venv virt_name

где virt_name – имя вашей виртуальной среды.

  1. Дождитесь завершения процесса создания виртуальной среды. Это может занять некоторое время.
  2. Ваша виртуальная среда будет создана в папке virt_name. В ней же будут находиться все файлы и зависимости, связанные с виртуальной средой.

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

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

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

  • Для Windows: .\Scripts\activate
  • Для macOS и Linux: source bin/activate

При успешной активации на экране отобразится:

Теперь вы находитесь в активированной виртуальной среде Python.

Если вы используете инструмент управления пакетами, такой как pipenv или poetry, вы можете создать и активировать виртуальную среду одной командой.

  • Для pipenv: pipenv shell
  • Для poetry: poetry shell

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

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

Для включения автоматической активации виртуальной среды при открытии терминала или командной строки, вам потребуется внести следующие изменения в файл конфигурации вашей оболочки (например, .bashrc для Bash или .zshrc для Zsh).

Приведем пример для оболочки Bash:

  1. Откройте файл конфигурации в текстовом редакторе и введите в терминале:
  1. В конце файла добавьте следующую строку, указывающую на активацию вашей виртуальной среды:

Замените /path/to/your/virtual/environment на путь к вашей виртуальной среде Python (например, /home/user/virt_name).

  1. Сохраните изменения и закройте файл конфигурации.
  2. Обновите текущую сессию оболочки, чтобы изменения вступили в силу:

Замените `~/.bashrc` на путь к вашему файлу конфигурации, если он отличается.

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

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

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

Если вы работаете на операционной системе Windows, то вам необходимо использовать команду:

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

Заключение

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

  1. Позволяет создавать отдельную изолированную среду для каждого проекта. Вы можете устанавливать и управлять зависимостями (библиотеки и пакеты) вашего проекта в изолированной среде, не влияя на другие проекты или систему в целом.
  2. С ее помощью создаются чистые и стабильные окружения для разработки и выполнения проектов. Начать работу можно с чистой виртуальной среды: установить только необходимые зависимости, избегая конфликтов между зависимостями других проектов. Это поможет снизить вероятность возникновения ошибок и облегчит управление зависимостями.
  3. Виртуальное окружение создает единообразную среду для вашего проекта, независимо от операционной системы или окружения разработки. Вы можете легко перенести ваш проект на другую машину или дать другим пользователям работать с вашим проектом.
  4. Управление версиями Python. Вы можете создавать и использовать разные виртуальные среды для различных версий Python, позволяя тестировать и разрабатывать проекты на разных версиях языка.

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

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

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