virtualenv Python

↓ Contents главы ↓
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

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

Это делается на этапе создания проекта

Выбор виртуального окружения при создании проекта в PyCharm www.aredel.com

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

Выбор виртуального окружения при создании проекта в PyCharm www.aredel.com

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

Выбор виртуального окружения при создании проекта в PyCharm www.aredel.com

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

Выбор виртуального окружения при создании проекта в PyCharm www.aredel.com

Article author: Andrei Olegovich

Похожие статьи
Interactive mode
str: strings
\: long line wrapping
Lists []
if, elif, else
Loops
Methods
Functions
*args **kwargs
enum
Get Variable Type
Testing with Python
Calling REST API with Python
Files: write, read, append, context manager…
Download File
SQLite3: database
datetime: Date and Time в Python
json.dumps
Selenium + Python
Issues with Python
DJANGO
Flask
ZPL printer script
socket :Python Sockets
Virtual Environment
subprocess: shell commands execution
multiprocessing
psutil: system usage
sys.argv: command prompt variables
PyCharm: IDE
pydantic: data validation
paramiko: SSH with Python
enumerate
Banner image

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.com
Write to info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: