Работа в virtualenv Python

Введение

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

Установку virtualenv мы рассматривали в предыдующей статье

Предположим, вы находитесь в директории virtualenvs внутри которой создано виртуальное окружение для Python3, которое называется test_env

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

Чтобы активировать вируальное окружение test_env из стандартоной cmd в Windows выполните

test_env\Scripts\activate.bat

Если Вы используете PowerShell выполните

test_env\Scripts\activate.ps1

А если Вы под Linux выполните

. test_env/bin/activate

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

(test_env) PS C:\Users\Andrei\virtualenvs>

Если ничего не произошло прочитайте совет в моей статье

«Сложности при работе с Python»

Проверка активации

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

Чтобы проверить активировалось ли виртуальное окружение или нет - можно выполнить следующие команды

python
>>>import sys
>>>sys.prefix
'/home/andrei/pytest/venv'
>>>sys.base_prefix
'/home/andrei/.pyenv/versions/3.9.5'

sys.prefix отличается от sys.base_prefix значит используется Python из виртуального окружения.

Если вы запускаете скрипт в Pycharm изучите вывод терминала

/home/andrei/pytest/venv/bin/python /home/andrei/pytest/main.py

Process finished with exit code 0

/home/andrei/pytest/venv/bin/python

- это путь до использованного Python

Если бы я запустил скрипт не из виртуального окружения вместо этого пути был бы путь

/usr/bin/python3.8

Проверка версии

Первое, что стоит сделать после первого входа в новое окружение - это проверить версию Python и Pip

python -V

Python 3.8.2

pip -V

pip 20.1.1 from C:\Users\Andrei\virtualenvs\test_env\lib\site-packages\pip (python 3.8)

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

python -m pip list

Package Version ---------- ------- pip 20.1.1 setuptools 46.4.0 wheel 0.34.2

Модулей всего три, это означает, что действительно, что-то изменилось.

Сравните с количеством модулей, которое установленов системе из урока pip

Установим requests в виртуальном окружении

python -m pip install requests

Collecting requests Downloading requests-2.23.0-py2.py3-none-any.whl (58 kB) |████████████████████████████████| 58 kB 609 kB/s Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 Downloading urllib3-1.25.9-py2.py3-none-any.whl (126 kB) |████████████████████████████████| 126 kB 2.2 MB/s Collecting chardet<4,>=3.0.2 Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB) |████████████████████████████████| 133 kB 2.2 MB/s Collecting certifi>=2017.4.17 Downloading certifi-2020.4.5.2-py2.py3-none-any.whl (157 kB) |████████████████████████████████| 157 kB 3.2 MB/s Collecting idna<3,>=2.5 Downloading idna-2.9-py2.py3-none-any.whl (58 kB) |████████████████████████████████| 58 kB 1.6 MB/s Installing collected packages: urllib3, chardet, certifi, idna, requests Successfully installed certifi-2020.4.5.2 chardet-3.0.4 idna-2.9 requests-2.23.0 urllib3-1.25.9

Проверим какие пакеты установились

python -m pip list

Package Version ---------- ---------- certifi 2020.4.5.2 chardet 3.0.4 idna 2.9 pip 20.1.1 requests 2.23.0 setuptools 46.4.0 urllib3 1.25.9 wheel 0.34.2

request подтянул за собой ещё четыре пакета: certifi, chardet, idna, urllib3

Проверить куда установился requests в этом окружении можно командой

python -m pip show requests

Name: requests Version: 2.23.0 Summary: Python HTTP for Humans. Home-page: https://requests.readthedocs.io Author: Kenneth Reitz Author-email: me@kennethreitz.org License: Apache 2.0 Location: c:\users\andrei\virtualenvs\test_env\lib\site-packages Requires: chardet, certifi, urllib3, idna Required-by:

Изображение баннера

Деактивация

Чтобы выйти из виртуального окружения используем команду

deactivate

Если сейчас выполнить

python -m pip show requests

WARNING: Package(s) not found: requests

Можно увидеть, что глобально requests вообще не установлен

Начиная с версии Python 3.6 рекомендуется создавать виртуальные окружения командой

python -m venv myvenv

Заново активируется окружение так же, например, для PowerShell

myvenv\Scripts\Activate.ps1

(myvenv) PS C:\Users\Andrei\virtualenvs>

Не знаю как у Вас, а у меня в PowerShell (myvenv), созданный с помощью venv подсвечен зелёным, а test_env, созданный с помощью virtualenv остаётся серым.

Удаление вируального окружения

Чтобы удалить виртуальное окружение - просто удалите папку

Автор статьи: Андрей Олегович