What is virtual environment? (using Node.js terminology)
For people who are familiar with Node.js development environment, virtual environment is somewhat similar. In Node.js, for your specific project, all the modules you installed is tailored specific to your project. It doesn’t affect anything outside of that project unless you npm install the module with -g tag. We have something similar to Python development environment as well. It is called virtual environment. It is essentially a place where you can pip install any modules and knowing that anything you do in this environment isn’t going to affect anything out there.
How Python virtual environment can be useful?
This is super useful since people can experinement anything they want inside this isolated area. Once they are satisfy with the modules that are installed, simple run pip freeze and port its result to a requiement text file so that others can have exactly the same development environment as you do. This is especially helpful in a team setting where group of people working on the same project together. On the other hand, for someone who has multiple Python project on their local computer may need different version of library, this virtual environment also comes in handy for that as well. In the following, we will be showing on how one can activate virtual environment in PowerShell.
How to activate Python virtual environment in PowerShell
Assume that you already have the virtual environment set up and you are wondering how one can enter the virtual environment in PowerShell. It is actually pretty simple, simply run the follow command.
.\.venv\Scripts\Activate
source code hosted on GitHub
Once we are in the virtual environment, it will be indicated on the left side. If we try import a library that we installed only in this virtual environment, we will be able to.
If we try to import it anywhere else where we don’t have the library install. This will happen,
What Happens in Vegas, Stays in Vegas
Same thing will happen to the library installed in the virtual environment.
Tada! Now that you are in the virtual environment, start coding!!!
Wrapping Up
Hopefully this article has help you understand what a virtual environment, how it can be useful, and how to activate it and thank you for reading!
Resources
I’ll try to keep this list current and up to date. If you know of a great resource you’d like to share or notice a broken link, please let us know.
Getting started
- Why is virtualenv necessary?
- How to activate virtual environment from Windows 10 command prompt?
Author
PoAn (Baron) Chen
Software Engineer at Microsoft. Graduated from @uvic. Previously worked at @illumina, @ACDSee, @AEHelp and @AcePersonnel1. My words are my own.
It’s quite easy to set up virtual a environment with isolated packages for Python in PowerShell. There are several methods
Method 1. Pipenv
This is the youngest and most convenient method. Pipenv automatically manages the environment and can create virtualenv based on the working directory. Files with virtualenv are stored in a separate directory and the user does not need to worry about them.
Install pipenv package:
python3 -m pip install pipenv
Enter the directory where you’d like to work and type:
pipenv shell
Pipenv will bootstrap and activate the environment. It will launch subshell. If you’d like to leave the environment simply close the shell by command:
exit
Method 2. Using embedded venv
Python 3 contains package venv. It’s often confused with virtualenv which is a standalone package to manage virtual environments. The advantage of the command is that you do not need to install additional packages. Just create a virtual environment in the directory like pyenv:
python3 -m pyenv
Activate the environment:
.\pyenv\Scripts\activate.ps1
To deactivate the environment simply call:
deactivate
Method 3. Good old virtualenv
Creating a virtual environment with virtualenv is an old method. You need to create a directory that will contain the virtual environment and then activate it. virtualenv is not part of the default Python package, it’s necessary to install it:
python3 -m pip install virtualenv
Now it’s possible to create a new virtualenv in a directory like pyenv by the following command:
virtualenv pyenv
The last step is to activate this environment in PowerShell :
.\pyenv\Scripts\activate.ps1
You should see the name of your virtual environment in the command line. The virtual environment is active.
To deactivate the environment simply call:
deactivate
Виртуальные среды Python (англ. virtual enviroment, сокращенно venv или virtualenv) позволяют устанавливать пакеты Python в изолированном от остальной части вашей системы месте. Давайте посмотрим, как их использовать для вашей работы.
Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python.
Оглавление
- Зачем нужны виртуальные среды
- Альтернативы виртуальных сред
- Как создать виртуальную среду
- Активация виртуальной среды
- Как в Python работают виртуальные среды
- Деактивация виртуальной среды
- Удаление виртуальной среды
- Заключение
Зачем нужны виртуальные среды
Существует множество причин, по которым виртуальные среды это хорошая идея. И именно поэтому мы вам о них рассказываем до того, как начнем устанавливать сторонние библиотеки. Итак, рассмотрим эти причины по порядку.
Предотвращение конфликтов версий
Вы можете возразить, что установка сторонних пакетов для всей системы очень эффективна. В конце концов, вам нужно установить пакет только один раз, и вы сможете использовать его в нескольких разных проектах Python, экономя драгоценное время и дисковое пространство. Однако в этом подходе есть проблема, которая может начать проявляться через несколько недель или месяцев.
Предположим, ваш проект, назовем его Проект А, написан на основе конкретной версии библиотеки X. В будущем вам может потребоваться обновить библиотеку X. Скажем, вам нужна последняя версия для другого начатого вами проекта под названием Проект Б. Вы обновляете библиотеку X до последней версии, и проект B работает нормально. Прекрасно, но после этого выясняется, что код Проекта А неисправен. При обновлении версий интерфейс может быть серьезным образом изменен.
Виртуальная среда решает эту проблему, изолируя ваш проект от других проектов и общесистемных пакетов. Вы устанавливаете пакеты внутри этой виртуальной среды специально для проекта, над которым работаете.
Легкость воспроизведения и установки
Виртуальные среды упрощают определение и установку пакетов, специфичных для вашего проекта. Используя файл require.txt, вы можете определить точные номера версий необходимых пакетов, чтобы ваш проект всегда работал с версией, протестированной с вашим кодом.
Работает везде, даже без прав администратора (root)
Если вы работаете на общем хосте, например, в университете или у провайдера веб-хостинга, вы не сможете устанавливать общесистемные пакеты, поскольку у вас нет для этого прав администратора. В этих местах виртуальная среда позволяет вам локально установить в свой проект все, что вы захотите.
Альтернативы виртуальных сред
Есть и другие варианты для изоляции вашего проекта:
- В самом крайнем случае можно купить второй компьютер и запускать на нем свой код. Проблема решена! Хотя это было бы немного дороговато!
- Виртуальная машина — гораздо более дешевый вариант, но она все равно требует установки полной операционной системы, что в большинстве случаев также является расточительством.
- Хорошей альтернативой является контейнеризация, например Docker или Kubernetes. Это весьма мощные инструменты для разработки.
Тем не менее, во многих случаях мы просто создаем небольшие проекты или одноразовые скрипты. Или, возможно, просто не хотим контейнеризировать свое приложение. В конце концов, это еще одна вещь, которую вам нужно выучить и понять. Какой бы ни была причина, виртуальные среды — отличный способ изолировать зависимости вашего проекта.
Как создать виртуальную среду
Существует несколько способов создания виртуальной среды в зависимости от используемой версии Python.
Прежде чем вы продолжите чтение, мы бы хотели указать вам на два других инструмента: Python Poetry
и Pipenv
. Оба эти инструмента сочетают в себе функциональность инструментов, которые вы собираетесь изучить: virtualenv и pip. Кроме того, они добавляют несколько дополнительных возможностей, и в первую очередь — возможность правильного разрешения зависимостей.
Python 3.4 и выше
Если вы используете Python 3.4+, то модуль venv уже встроен в него.
python -m venv <directory>
Эта команда создает виртуальную среду в указанном каталоге и также копирует в него пакетный менеджер pip
. Если вы не решили, как назвать каталог: обычно по умолчанию используется название venv; это не дает никому усомнится, что там такое. Таким образом, команда в этом случае будет выглядеть вот так:
python -m venv venv
Чуть дальше в этой статье мы внимательно рассмотрим только что созданный каталог. Но сначала посмотрим, как активировать эту виртуальную среду.
Другие версии Python
Альтернативой, которая работает для любой версии Python, является использование пакета virtualenv
. Но для этого его надо сначала установить:
pip install virtualenv
После установки можно создать виртуальную среду с помощью следующей команды:
virtualenv [directory]
Активация виртуальной среды
Способ активации виртуальной среды зависит от используемой вами ОС.
Активация виртуальной среды в Windows
Чтобы активировать виртуальную среду в Windows, вам необходимо запустить скрипт, который устанавливается вместе с ней. Если вы создали свою виртуальную среду в каталоге с именем venv
, то команда будет выглядеть следующим образом:
# In cmd.exe venv\Scripts\activate.bat # In PowerShell venv\Scripts\Activate.ps1
Активация виртуальной среды в Linux и MacOS
В Linux и MacOS мы активируем виртуальную среду при помощи команды source
. Если вы создали свою виртуальную среду в каталоге myvenv
, то команда будет выглядеть так:
$ source myvenv/bin/activate
Вот и все! Мы готовы к работе! Теперь можно устанавливать пакеты при помощи пакетного менеджера pip
, но мы советуем вам продолжить чтение, чтобы лучше понять механизмы работы виртуальных сред.
При активации виртуальной среды изменяется переменная PATH
. В Linux и MacOS это можно увидеть, распечатав ее с помощью команды echo $PATH
. В Windows используется команда echo %PATH%
(в cmd.exe) или команда $Env:Path
(в PowerShell). В нашем случае под Windows это выглядит следующим образом:
C:\Users\erik\Dev\venv\Scripts;C:\Program Files\PowerShell\7;C:\Program Files\AdoptOpen....
Это длинный список, и мы показали только его начало. Как видите, каталог Scripts моей виртуальной среды помещен впереди всех других каталогов, фактически переопределяя все общесистемные программы Python.
Что же делает переменная PATH?
Когда вы вводите команду, которая не может быть найдена в текущем рабочем каталоге, ваша ОС начинает просматривать все пути в переменной PATH
.
То же самое происходит и с Python. Когда вы импортируете библиотеку, Python просматривает PATH
на предмет расположения библиотеки. И вот тут-то и происходит наша магия с виртуальной средой: если виртуальная среда находится перед всеми остальными путями, то ОС будет искать сначала в ней, а потом уже обращаться к общесистемным каталогам, таким как /usr/bin
. Таким образом, все, что установлено в нашей виртуальной среде, будет найдено первым, и именно так мы можем переопределять общесистемные пакеты и инструменты.
Что находится внутри виртуальной среды?
Если заглянуть в каталог виртуальной среды, то под операционной системой Windows вы увидите примерно следующее:
. ├── Include ├── Lib │ └── site-packages ├── pyvenv.cfg └── Scripts ├── activate ├── activate.bat ├── Activate.ps1 ├── deactivate.bat ├── pip3.10.exe ├── pip3.exe ├── pip.exe ├── python.exe └── pythonw.exe
А под Linux и MacOS вот что:
Можно заметить, что:
- доступны команды
python
иpython3
(в Linux и MacOS), причем версия соответствует версии Python, в которой была создана виртуальная среда - в операционной системе Windows двоичный файл Python копируется в каталог
scripts
- все устанавливаемые пакеты попадают в каталог
site-packages
- у нас есть скрипты активации для различных типов оболочек (bash, csh, fish, PowerShell)
- пакетный менеджер pip можно запускать посредством команд
pip
иpip3
и дажеpip3.7
, так как на момент установки виртуальной среды у нас была версия Python 3.7.
Деактивация виртуальной среды
По окончании работы над проектом рекомендуется деактивировать его виртуальную среду. Деактивация означает выход из данной виртуальной среды. Без деактивации виртуальной среды весь остальной выполняемый вами Python-код, даже если он находится вне каталога проекта, также будет выполняться внутри этой виртуальной среды.
К счастью, деактивация виртуальной среды крайне проста. Просто введите команду deactivate
. Это работает одинаково во всех операционных системах.
Удаление виртуальной среды
Виртуальную среду можно полностью удалить, но как это сделать, зависит от того, что именно использовалось для ее создания. Рассмотрим наиболее распространенные варианты.
Удаление виртуальной среды, созданной при помощи команды Virtualenv или python -m venv
Если для создания виртуальной среды вы использовали команды virtualenv
или python -m venv
, как это было показано выше в данной статье, то какой-либо специальной команды для ее удаления не существует. При создании виртуальной среды вы задали каталог, в котором было создано данное окружение.
Если вы хотите удалить эту виртуальную среду, то сначала деактивируйте ее, а затем удалите ее каталог со всем его содержимым. В Unix-подобных системах и в Windows PowerShell это можно сделать следующим образом:
deactivate # Если ваша виртуальная среда находится в каталоге под названием 'venv': rm -r venv
Удаление виртуальной среды, созданной при помощи Pipenv
Если для создания виртуальной среды вы использовали Pipenv
, то все гораздо проще. Для ее удаления можно воспользоваться следующей командой:
pipenv --rm
Только убедитесь, что вы находитесь в каталоге проекта. Другими словами, в каталоге, где находятся файлы Pipenv и Pipenv.lock. Таким образом pipenv
узнает, какое виртуальное окружение ему нужно удалить.
Если это не сработало, можно поступить немного грубее и удалить виртуальную среду вручную. Сначала спросите у pipenv
, где находится данная виртуальная среда, выполнив следующую команду:
pipenv --env /home/username/.local/share/virtualenvs/yourproject-IogVUtsM
Данная команда выведет путь к виртуальной среде и всем ее файлам, который будет выглядеть примерно так, как показано выше. Следующим шагом будет удаление всего этого каталога. И все, дело сделано.
Удаление виртуальной среды, созданной при помощи Poetry
Если вы создали виртуальную среду при помощи Poetry, то список доступных сред можно составить при помощи следующей команды:
poetry env list
Вы получите примерно такой список:
test-O3eWbxRl-py2.7 test-O3eWbxRl-py3.6 test-O3eWbxRl-py3.7 (Activated)
Удалить нужное окружение можно с помощью команды poetry env remove
. При этом необходимо указать точное имя среды из приведенного выше вывода, например:
poetry env remove test-O3eWbxRl-py3.7
Заключение
Вы узнали, как создавать, активировать, деактивировать и удалять виртуальные среды. Мы также слегка заглянули за ширму, чтобы узнать, как работает виртуальная среда и для чего она нужна.
Теперь, когда вы знаете, как создавать виртуальные среды, вам необходимо научиться устанавливать в них пакеты. Для этого мы настоятельно рекомендуем вам познакомиться с Pipenv или Poetry. Эти инструменты объединяют управление виртуальной средой с правильным управлением пакетами и зависимостями.
Перевод статьи «Python venv: How To Create, Activate, Deactivate, And Delete».

- Настройка виртуального окружения
-
Создание
-
Активация
-
Автоматическая активация
-
Деактивация
- Альтернативы venv
Все сторонние пакеты устанавливаются менеджером PIP глобально. Проверить это можно просто командой pip show <имя_пакета>
.
root@purplegate:~# pip3 show pytest
Name: pytest
Version: 5.3.2
Summary: pytest: simple powerful testing with Python
Home-page: https://docs.pytest.org/en/latest/
Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, ...
License: MIT license
Location: /usr/local/lib/python3.8/site-packages
Requires: more-itertools, pluggy, py, wcwidth, attrs, packaging
Required-by:
Location — путь до ваших глобальных пакетов.
В большинстве случаев, устанавливать пакеты глобально — плохая идея 🙅♂️ Почему? Рассмотрим простой пример:
Допустим у нас есть два проекта: «Project A» и «Project B». Оба проекта зависят от библиотеки Simplejson. Проблема возникает, когда для «Project A» нужна версия Simplejson 3.0.0, а для проекта «Project B» — 3.17.0. Python не может различить версии в глобальном каталоге site-packages
— в нем останется только та версия пакета, которая была установлена последней.
Решение данной проблемы — создание виртуального окружения (virtual environment).
Основная цель виртуального окружения Python — создание изолированной среды для python-проектов
Это означает, что каждый проект может иметь свои собственные зависимости, независимо от других проектов.
Настройка виртуального окружения
Один из самых популярных инструментов для создания виртуального окружения — virtualenv. Однако в данной статье мы будем рассматривать более свежий инструмент venv.
Устанавливать venv не нужно — он входит в стандартную библиотеку Python
Создание
Для создания виртуального окружения, перейдите в директорию своего проекта и выполните:
python -m venv venv
-m
— флаг для запуска venv
как исполняемого модуля.
venv
— название виртуального окружения (где будут храниться ваши библиотеки).
В результате будет создан каталог venv/
содержащий копию интерпретатора Python, стандартную библиотеку и другие вспомогательные файлы. Все новые пакеты будут устанавливаться в venv/lib/python3.x/site-packages/
.
Виртуальное окружение также можно создать в IDE PyCharm, для этого:
- Зайдите в настройки интерпретатора («Settings» → «Project:<name>» → «Project Interpreter«);
- Нажмите на шестеренку в верхнем правом углу, выберите «Add..«;
- Выберите «Virual Enviroment» и задайте параметры.
Активация
Чтобы начать пользоваться виртуальным окружением, необходимо его активировать:
venv\Scripts\activate.bat
— для Windows;source venv/bin/activate
— для Linux и MacOS.
source
выполняет bash-скрипт без запуска дополнительного bash-процесса.
Проверить успешность активации можно по приглашению оболочки. Она будет выглядеть так:
(venv) root@purplegate:/var/test#
Также новый путь до библиотек можно увидеть выполнив команду:
python -c "import site; print(site.getsitepackages())"
Если вы используете IDE PyCharm, то при открытии проекта он автоматически найдет созданное виртуальное окружение и уведомит о его использовании. Проверить настройки виртуального окружения можно в «Settings» → «Project:<name>» → «Project Interpreter» (путь до интерпретатора должен быть вида [путь до проекта]/venv/Scripts/python.exe)
.
Интересный факт: в виртуальном окружении вместо команды python3 и pip3, можно использовать python и pip
Автоматическая активация
В некоторых случаях, процесс активации виртуального окружения может показаться неудобным (про него можно банально забыть 🤷♀️).
На практике, для автоматической активации перед запуском скрипта, создают скрипт-обертку на bash
:
#!/usr/bin/env bash
source $BASEDIR/venv/bin/activate
python $BASEDIR/my_app.py
Теперь можно установить права на исполнение и запустить нашу обертку:
chmod +x myapp/run.sh
./myapp/run.sh
Деактивация
Закончив работу в виртуальной среде, вы можете отключить ее, выполнив консольную команду:
deactivate
Альтернативы venv
На данный момент существует несколько альтернатив для venv:
- pipenv — это pipfile, pip и virtualenv в одном флаконе;
- pyenv — простой контроль версий Питона;
- poetry — новый менеджер для управления зависимостями;
- autoenv — среды на основе каталогов;
- pew — инструмент для управления несколькими виртуальными средами, написанными на чистом Python;
- rez — интегрированная система конфигурирования, сборки и развертывания пакетов для программного обеспечения.
Стоит ли использовать виртуальное окружение в своей работе — однозначно да. Это мощный и удобный инструмент изоляции проектов друг от друга и от системы. С помощью виртуального окружения можно использовать даже разные версии Python!
Однако рекомендуем присмотреться к более продвинутым вариантам, например к pipenv или poetry.
Последнее обновление: 08.03.2025
По умолчанию вместе с установкой интерпретатора Python также устанавливается множество дополнительных пакетов/библиотек, которые с помощью импорта соответствующих модулей мы можем использовать в своей программе. Часть из них уже была рассмотрена
в предыдущих статьях. Однако кроме встроенных пакетов есть огромнейшее количество пакетов, которые развиваются сообществом (различными компаниями или даже отдельными разработчиками) и которые мы также можем использовать при разработке приложения.
Для управления пакетами — их установки или удаления необходим такой инструмент как менеджер пакетов. Для работы с пакетами Python существует множество менеджеров пакетов, например,
pip, conda, pixi, uv и так далее.
Этой статье мы рассмотрим использование менеджера pip, поскольку он является стандартным и наиболее распространенным способом для управления пакетами, и, кроме того, обычно он устанавливается вместе с
интерпретатором Python и поэтому обычно уже присутствует в системе. pip загружает пакеты из репозитория PyPI (Python Package Index), который является самым большим репозиторием пакетов Python. Так, на момент написания текущей статьи PyPI насчитывал более 600000 проектов.
Репозиторий также доступен по адресу https://pypi.org/. В частности, через веб-интерфейс можно найти нужный пакет, всю связанную с ним информацию, его историю версий и т.д.
Для начала необходимо убедиться, что у вас установлен pip. Если у вас установлен Python, то, скорее всего, pip тоже уже есть. Чтобы проверить наличие pip, откройте терминал (или командную строку) и выполните команду:
pip --version
Если pip установлен, вы увидите версию менеджера пакетов:
eugene@Eugene:~$ pip --version pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12) eugene@Eugene:~$
Если pip по какой-то причине вдруг не был установлен, то мы увидим ошибку типа
"pip" не является внутренней или внешней командой, исполняемой программой или пакетным файлом
В этом случае нам надо установить pip. Для этого можно выполнить в командной строке/консоли следующую команду:
python -m ensurepip --upgrade
Если pip ранее уже был установлен, то можно его обновить с помощью команды
python -m pip install --upgrade pip
Установка виртуальной среды
В операционной системе на базе Linux (Ubuntu, Debian и др.), где используется встроенное управление пакетами, например, через apt или другой пакетный менеджер, перед установкой пакетов Python через pip
также необходимо создать виртуальную среду. На Windows использовать виртуальную среду необязательно, но тоже является рекомендуемым подходом при работы с пакетами Python.
Виртуальная среда позволяет изолировать пакеты от системных установок Python.
Так, без использования виртуальной среды все устанавливаемые через pip пакеты на Windows устанавливаются глобально. Однако что если после создания первого приложения выйдет новая версия используемого пакета?
Если мы захотим использовать для второго проекта новую версию пакета, то из-за глобальной установки пакетов придется обновлять первый проект, который использует старую версию.
Это потребует некоторой дополнительной работы по обновлению, так как не всегда соблюдается обратная совместимость между пакетами.
Если мы решим использовать для второго проекта старую версию, то мы лишимся потенциальных преимуществ новой версии.
И использование виртуальной среды как раз позволяет разграничить пакеты для каждого проекта.
Для работы с виртуальной средой в python применяется встроенный модуль venv. Обычно этот модуль доступен по умолчанию, но на некоторых операционных системах на базе Linux он может остутствовать.
В этом случае нам надо установить в ОС пакет python3-venv. Например, установка на Ubuntu/Debian:
sudo apt install python3-venv
Итак, создадим вируальную среду. Вначале определим каталог для проектов и перейдем в него в консоли/командной строке. Затем для создания виртуальной среды выполним следующую команду:
python3 -m venv myenv
Модулю venv передается название среды, которая в данном случае будет называться «myvenv». Для наименования виртуальных сред нет каких-то определенных условностей.
После этого в текущей папке будет создан подкаталог «myvenv».
eugene@Eugene:/python/metanit$ python3 -m venv myenv eugene@Eugene:/python/metanit$ ls -l myenv total 2 drwxrwxrwx 1 root root 528 Mar 8 14:56 bin drwxrwxrwx 1 root root 0 Mar 8 14:56 include drwxrwxrwx 1 root root 152 Mar 8 14:56 lib lrwxrwxrwx 1 root root 3 Mar 8 14:56 lib64 -> lib -rwxrwxrwx 1 root root 192 Mar 8 14:56 pyvenv.cfg eugene@Eugene:/eugene/python/metanit$
Активация виртуальной среды
Для использования виртуальную среду надо активировать. И каждый раз, когда мы будем работать с проектом, надо активировать связанную с ним виртуальную среду.
Например, активируем выше созданную среду, которая располагается в текущем каталоге в папке «myvenv». Процесс активации немного отличается в зависимости от операционной системы и от того, какие инструменты применяются. Так, в Windows можно использовать командную строку и PowerShell,
но между ними есть отличия:
-
Активация в Windows в коммандной строке
Если наша ОС — Windows, то в папке myvenv/Scripts/ мы можем найти файл activate.bat, который активирует
виртуальную среду. Так, в Windows активация виртуальной среды в коммандной строке будет выглядеть таким образом:myvenv\Scripts\activate.bat
-
Активация в Windows в PowerShell
Также при работе на Windows в папке myvenv/Scripts/ мы можем найти файлactivate.ps1, который также активирует виртуальную среду,
но применяется только в PowerShell. Но при работе с PowerShell следует учитывать, что по умолчанию в этой оболочке запрещено применять скрипты. Поэтому
перед активацией среды необходимо установить разрешения для текущего пользователя. Поэтому для активации виртуальной среды в PowerShell необходимо выполнить две следующих команды:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser myvenv\Scripts\Activate.ps1
-
Активация в Linux и MacOS
Для Linux и MacOS активация будет производиться с помощью следующей команды:
source myvenv/bin/activate
После активации слева текущего пути мы увидим название виртуальной среду в круглых скобках:
(myenv) eugene@Eugene:/eugene/python/metanit$
Пример на основе командной строки Windows:
C:\eugene\python\metanit>python -m venv .venv C:\eugene\python\metanit>myvenv\Scripts\activate.bat (.venv) C:\eugene\python\metanit>
Пример на основе консоли Ubuntu:
eugene@Eugene:/python/metanit$ python3 -m venv myenv eugene@Eugene:/python/metanit$ source myenv/bin/activate (myenv) eugene@Eugene:/python/metanit$
Деактивация виртуальной среды
После окончания работы с виртуальной средой мы можем ее деактивировать с помощью команды:
deactivate
Управление пакетами с помощью pip
Установка пакетов
Для установки пакетов с помощью pip применяется команда
pip install название_пакета
Рассмотрим на примере установки популярного пакета для отрисовки графиков matplotlib. Для его установки после активации виртуальной среды (как было показано выше)
выполним команду
pip install matplotlib
И в конце проверим установку, выполнив команду, которая выводит версию matplotlib:
python -c "import matplotlib; print(matplotlib.__version__)"
Полный пример
(myenv) eugene@Eugene:/python/metanit$ pip install matplotlib Collecting matplotlib Downloading matplotlib-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB) Collecting contourpy>=1.0.1 (from matplotlib) Downloading contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.4 kB) Collecting cycler>=0.10 (from matplotlib) Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB) ..................................................................... Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Installing collected packages: six, pyparsing, pillow, packaging, kiwisolver, fonttools, cycler, contourpy, python-dateutil, matplotlib Successfully installed contourpy-1.3.1 cycler-0.12.1 fonttools-4.56.0 kiwisolver-1.4.8 matplotlib-3.10.1 packaging-24.2 pillow-11.1.0 pyparsing-3.2.1 python-dateutil-2.9.0.post0 six-1.17.0 (myenv) eugene@Eugene:/python/metanit$ python -c "import matplotlib; print(matplotlib.__version__)" 3.10.1 (myenv) eugene@Eugene:/python/metanit$
Получение информации о пакетах
С помощью команды pip list можно получить список всех установленных пакетов и их версий:
(myenv) eugene@Eugene:/python/metanit$ pip list Package Version --------------- ----------- contourpy 1.3.1 cycler 0.12.1 fonttools 4.56.0 kiwisolver 1.4.8 matplotlib 3.10.1 packaging 24.2 pillow 11.1.0 pip 24.0 pyparsing 3.2.1 python-dateutil 2.9.0.post0 six 1.17.0 (myenv) eugene@Eugene:/python/metanit$
Как видно из консольного вывода, несмотря на то, что был установлен только один пакет, вместе с ним также был установлен набор других пакетов, от которых зависит основной пакет.
Если надо получить информацию по какому-то конкретному пакету, то можно использовать команду
pip show имя_пакета
Например, получим информацию по matplotlib:
(myenv) eugene@Eugene:/python/metanit$ pip show matplotlib Name: matplotlib Version: 3.10.1 Summary: Python plotting package Home-page: Author: John D. Hunter, Michael Droettboom ................................ Requires: contourpy, cycler, fonttools, kiwisolver, numpy, packaging, pillow, pyparsing, python-dateutil Required-by: (myenv) eugene@Eugene:/python/metanit$
Удаление пакета
Для удаления пакета применяется команда
pip uninstall имя_пакета
Использование установленных пакетов
Теперь для демонстрации применим установленный пакет в простейшей программе. Например, выведем показатели популярности языка Python согласно рейтингу TIOBE за 2022 год помесячно. Для этого в текущем каталоге определим файл app.py со следующим кодом:
import matplotlib.pyplot as plt # импортируем функциональность модуля pyplot из пакета matplotlib months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] rates = [13.58, 15.33, 14.26, 13.92, 12.74, 12.2, 13.44, 15.63, 15.74, 17.08, 17.18, 16.66] # метка по оси X plt.xlabel("month") # метка по оси Y plt.ylabel("rate") plt.plot(months, rates) plt.show()
Так как этот код приведен больше для демонстрации, то рассмотрим вкратце, что он делает. Здесь список months хранит сокращенные названия месяцев, а rates — показатели популярности.
С помощью функции xlabel()
устанавливаем метку для оси Х, а с помощью функции ylabel()
— для оси Y. В функцию plot()
передаются
два списка — для отображения по оси X (здесь список months) и по оси Y (здесь список rates). Функция plot() принимает набор значений, которые надо
вывести на графике. С помощью функции show()
отображаем график в окне просмотра по умолчанию.
После активации виртуальной среды (если она ранее была деактивирована или не была активирован) запустип скрипт на выполнение:
(myenv) eugene@Eugene:/python/metanit$ python3 app.py
В итоге нам отобразится следующее окно:
Таким образом, пакетный менеджер pip позволяет устанавливать пакеты Python. А создание виртуальных окружений предоставляет лучший способ работать с Python-проектами, особенно когда нужно установить дополнительные пакеты, такие как matplotlib, без изменения глобальных системных установок. Это изолирует зависимости и предотвращает конфликты с другими проектами и системными библиотеками.