Skip to content

Instantly share code, notes, and snippets.

@Relecto
Created May 7, 2020 16:38
Show Gist options
  • Select an option

  • Save Relecto/7b4684a4d792da0b6710f3156f852752 to your computer and use it in GitHub Desktop.

Select an option

Save Relecto/7b4684a4d792da0b6710f3156f852752 to your computer and use it in GitHub Desktop.
Мини-руководство по venv

venv - Виртуальная среда в Python

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

Зачем нужна виртуальная среда

Представим, что вы в своем проекте захотели использовать какую-нибудь библиотеку, будь то Flask или numpy. Чтобы ее установить, вы открываете консоль и набираете:

pip install numpy

После этого пакет numpy устанавливается глобально. Данный подход имеет несколько проблем:

  • Установка (или обновление) пакета глобально может сломать системные программы (в основном на Unix-like системах).
  • Наверняка вы работаете с разными проектами, каждый из которых зависит от разных пакетов. Если все пакеты устанавливать глобально, то ваш набор пакетов будет бесконтрольно разрастаться.
  • Вы не сможете удалить (или обновить) пакет, не рискуя сломать один из ваших проектов.

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

Как этим пользоваться

Открываем консоль, переходим в директорию с вашим проектом и запускаем следующую команду:

python3 -m venv venv

Команда создает новую виртуальную среду в директории venv.

Далее, нам необходимо активировать виртуальную среду:

# Windows (cmd.exe)
venv\Scripts\activate.bat

# Linux/macOS 
source venv/bin/activate

Теперь, когда вы будете использовать python или pip в этой консоли, то будет использоваться интерпретатор и набор пакетов из этой виртуальной среды.

Давайте проверим, установим пакет numpy:

$ pip install numpy
Collecting numpy
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/e6/3a/8467d1aaf1f5bba88e5385c6c0c477153fa27adfebdade265b648db3dcf4/numpy-1.18.4-cp36-cp36m-macosx_10_9_x86_64.whl (15.2MB)
    100% |████████████████████████████████| 15.2MB 73kB/s
Installing collected packages: numpy
Successfully installed numpy-1.18.4

$ python
Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np 
# Работает, без ошибок
>>>

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

Чтобы удалить виртуальную среду вместе со всеми пакетами, достаточно просто удалить директорию venv.

Заключение

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

Использование venv - это удобно и позволяет избежать неприятных проблем. Популярные среды разработки из коробки поддерживают venv (например PyCharm или VS Code с расширением Python).

Подробнее

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment