🏠 | 💻 IT | Программирование Code | Python |

virtualenv Python

Введение

virtualenv это инструмент для изоляции проектов друг от друга.

Можно создавать проекты с разными установленными пакетами, разными версиями Python, Pip и так далее.

Применяется чаще всего с двумя целями:

Первая: писать и тестировать код, который должен работать в разных условиях. Например, нужна версия программы для Python 2.7 и для Python 3.8.

Вторая: не «портить» установленный системный Python, превращая его в кашу из кучи разных пакетов.

Если вам нужно настроить virtualenv на хостинге - инструкция Beget

Содержание главы
Введение
Установка virtualenv
Создать новое окружение
Выбор версии Python
Применение virtualenv
freeze
virtualenvwrapper
Pycharm

Чтобы проверить установлен virtualenv или нет выполните

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 для окружения

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

Чтобы это сработало нужно иметь установленный Python данной версии

python3.6 -m venv your_env

Из чего состоит окружение

Зайдём внутрь 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.andreyolegovich.ru

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

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

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

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

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

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

Если остались вопросы - смело задавайте их в комментариях.

Поиск по сайту

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: