virtualenv Python
Introduction | |
venv | |
Установка virtualenv | |
Создать новое окружение | |
Выбор версии Python | |
Применение virtualenv | |
freeze | |
virtualenvwrapper | |
Pycharm |
Introduction
virtualenv это инструмент для изоляции проектов друг от друга.
Можно создавать проекты с разными установленными пакетами, разными версиями Python, Pip и так далее.
Применяется чаще всего с двумя целями:
Первая: писать и тестировать код, который должен работать в разных условиях.
Например, нужна версия программы для Python 2.7 и для Python 3.8.
Вторая: не «портить» установленный системный Python, превращая его в кашу из кучи разных
пакетов.
Если вам нужно настроить virtualenv на хостинге -
инструкция Beget
To проверить установлен virtualenv или нет execute
virtualenv --version
Если в результате вы видите что-то похожее, то можно продолжать. Ваша версия может отличаться от 20.0.21 это нормально.
virtualenv 20.0.21 from c:\users\andrei\appdata\local\programs\python\python38-32\lib\site-packages\virtualenv\__init__.py
Если в результате вы получили сообщение о том что команда неизвестна - прочитайте статью «Установка virtualenv в Windows и Linux
Создать новое виртуальное окружение
Создадим директорию, в которой будем хранить виртуальные окружения.
cd ~
mkdir virtualenvs
cd virtualenvs
Создадим новое виртуальное окружение, которое назовём test_env
virtualenv test_env
Или, если мы хотим явно указать, что нужно создать виртуальное окружение именно для Python3.
virtualenv -p python3 test_env
У меня по умолчанию создается для Python3, но в Вашей системе это может быть не так, поэтому второй вариант предпочтительнее.
created virtual environment CPython3.8.2.final.0-32 in 1410ms creator CPython3Windows(dest=C:\Users\Andrei\virtualenvs\test_env, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Andrei\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Выбор версии Python для окружения
To создать окружение с определённой версией Python execute command с указанием версии.
To это сработало нужно иметь установленный Python данной версии
virtualenv --python=/usr/bin/python3.6 python36
Из чего состоит окружение
Зайдём внутрь test_env и посмотрим, что там находится
cd test_env
dir
Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 6/5/2020 9:35 PM Lib d----- 6/5/2020 9:35 PM Scripts -a---- 6/5/2020 9:35 PM 42 .gitignore -a---- 6/5/2020 9:35 PM 421 pyvenv.cfg
cd test_env
dir
Директория Scripts в Linux будет называться bin.
Перейдём туда и изучим состав.
cd Scripts
dir
Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 6/5/2020 9:35 PM 2313 activate -a---- 6/5/2020 9:35 PM 1069 activate.bat -a---- 6/5/2020 9:35 PM 3179 activate.fish -a---- 6/5/2020 9:35 PM 1815 activate.ps1 -a---- 6/5/2020 9:35 PM 1216 activate.xsh -a---- 6/5/2020 9:35 PM 1225 activate_this.py -a---- 6/5/2020 9:35 PM 529 deactivate.bat -a---- 6/5/2020 9:35 PM 97159 easy_install-3.8.exe -a---- 6/5/2020 9:35 PM 97159 easy_install.exe -a---- 6/5/2020 9:35 PM 97159 easy_install3.exe -a---l 6/5/2020 9:35 PM 0 libcrypto-1_1.dll -a---l 6/5/2020 9:35 PM 0 libffi-7.dll -a---l 6/5/2020 9:35 PM 0 libssl-1_1.dll -a---- 6/5/2020 9:35 PM 97150 pip-3.8.exe -a---- 6/5/2020 9:35 PM 97150 pip.exe -a---- 6/5/2020 9:35 PM 97150 pip3.8.exe -a---- 6/5/2020 9:35 PM 97150 pip3.exe -a---- 6/5/2020 9:35 PM 25 pydoc.bat -a---l 6/5/2020 9:35 PM 0 pyexpat.pyd -a---l 6/5/2020 9:35 PM 0 python.exe -a---l 6/5/2020 9:35 PM 0 python3.dll -a---l 6/5/2020 9:35 PM 0 python38.dll -a---l 6/5/2020 9:35 PM 0 pythonw.exe -a---l 6/5/2020 9:35 PM 0 select.pyd -a---l 6/5/2020 9:35 PM 0 sqlite3.dll -a---l 6/5/2020 9:35 PM 0 tcl86t.dll -a---l 6/5/2020 9:35 PM 0 tk86t.dll -a---l 6/5/2020 9:35 PM 0 unicodedata.pyd -a---l 6/5/2020 9:35 PM 0 vcruntime140.dll -a---- 6/5/2020 9:35 PM 97137 wheel-3.8.exe -a---- 6/5/2020 9:35 PM 97137 wheel.exe -a---- 6/5/2020 9:35 PM 97137 wheel3.exe -a---l 6/5/2020 9:35 PM 0 winsound.pyd -a---l 6/5/2020 9:35 PM 0 _asyncio.pyd -a---l 6/5/2020 9:35 PM 0 _bz2.pyd -a---l 6/5/2020 9:35 PM 0 _ctypes.pyd -a---l 6/5/2020 9:35 PM 0 _ctypes_test.pyd -a---l 6/5/2020 9:35 PM 0 _decimal.pyd -a---l 6/5/2020 9:35 PM 0 _elementtree.pyd -a---l 6/5/2020 9:35 PM 0 _hashlib.pyd -a---l 6/5/2020 9:35 PM 0 _lzma.pyd -a---l 6/5/2020 9:35 PM 0 _msi.pyd -a---l 6/5/2020 9:35 PM 0 _multiprocessing.pyd -a---l 6/5/2020 9:35 PM 0 _overlapped.pyd -a---l 6/5/2020 9:35 PM 0 _queue.pyd -a---l 6/5/2020 9:35 PM 0 _socket.pyd -a---l 6/5/2020 9:35 PM 0 _sqlite3.pyd -a---l 6/5/2020 9:35 PM 0 _ssl.pyd -a---l 6/5/2020 9:35 PM 0 _testbuffer.pyd -a---l 6/5/2020 9:35 PM 0 _testcapi.pyd -a---l 6/5/2020 9:35 PM 0 _testconsole.pyd -a---l 6/5/2020 9:35 PM 0 _testimportmultiple.pyd -a---l 6/5/2020 9:35 PM 0 _testmultiphase.pyd -a---l 6/5/2020 9:35 PM 0 _tkinter.pyd
Обратим внимание на скрипты
activate,
activate.bat и
activate.ps1
один из них нам понадобится, а какой - зависит от Вашего окружения.
Под
Linux
нужен будет
activate
Под
Windows
activate.bat для обычной командной строки или
activate.ps1 для
PowerShell.
не все пакеты работают одинаково, некоторые не поддерживают
PowerShell, но
какие-то действия проще делать в нём.
Виртуальные окружения в PyCharm
Вы можете выбрать каким инструментом пользоваться для работы с виртуальными окружениями.
Это делается на этапе создания проекта

По умолчанию доступны virtualenv, pipenv и conda

Название для окружения задаётся здесь:

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