Работа в 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 остаётся серым.
Удаление вируального окружения
Чтобы удалить виртуальное окружение - просто удалите папку
virtualenv | |
Установка virtualenv | |
Применение virtualenv | |
freeze | |
virtualenvwrapper | |
Виртуальное окружение | |
Python | |
Anaconda | |
pyenv | |
venv |