• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Статья Виртуальная среда Python - основы Virtualenv

prew.jpg


Вступление

Доброго времени суток, коллеги, сегодня мне хотелось бы поговорить с вами о такой вещи, как виртуальное окружение. Что же это за зверь такой? Для чего он нужен, какие проблемы решает ?

Virtualenv - это инструмент для создания изолированных сред для разработки приложений на Python. По своей сути, это программа которая создает папку, где содержаться все необходимые зависимости для проекта на Питончике.

Зачастую использовать виртуальные среды рекомендуется так как при работе с Python приложениями может возникнуть ряд проблем связанных с библиотеками. Например если, приложения могут использовать одну и ту же библиотеку, но разных версий.
Или же вам захочется, чтобы приложение работало на библиотеке конкретной версии, вне зависимости обновляются-ли у вас они или нет. А в некоторых случаях у вас просто может не быть доступа к глобальному хранилищу библиотек. Да, и это просто удобно черт возьми.

На самом деле программ для создания виртуального окружения множество: Pyenv, Venv, Virtualvenvwrapper и множество других. Какие-то из них входят в PyPi (Python Package Index - репозиторий пакетов Python) какие-то нет. Но сегодня мы рассмотрим именно virtualenv, так как это, наверное, один из самых популярных инструментов для создания виртуальных окружений.

Перейдем к установки этого замечательно ПО для операционные системы Linux, под Windows будет все очень похоже, за исключением специфики этой ОС, название каталогов, их расположение и т.д.

Установка с помощью pip:
Код:
pip install virtualenv

Но так же можно собрать и из исходников:

Bash:
git clone https://github.com/pypa/virtualenv
cd
sudo python setup.py install

virtualenv_install.png


Работа с виртуальным окружением

Создаем виртуальное окружение следующей командой:
Код:
virtualenv codeby

Где Codeby это имя нашего окружения.
В текущем каталоге будет создана папка с именем виртуального окружения, в данном случае "Codeby", давайте ее рассмотрим.

virtualenv_activation.png


Внутри папки мы видим файл pyvenv.cfg а так же две директории bin и lib.
В pyvenv.cfg как можно было понять из названия, содержаться настройки для виртуального окружения версия и путь до интерпретатора, версия virtualenv, импортировать ли библиотеки из глобального хранилища, а так же переменные окружения.

если вы хотите при создании виртуального окружения импортировать в него библиотеки из глобального хранилища библиотек, то нужно добавить ключ --system-site-packages что бы получилось virtualenv --system-site-packages codeby

В папке bin содержит скрипты для активации или де активации виртуального окружения, интерпретатор Python, используемый в рамках данного окружения, менеджер pip и ещё несколько инструментов, обеспечивающих работу с пакетами.
А в директории lib - библиотечные файлы окружения. Новые пакеты будут установлены в каталог /lib/pythonX.X/site-packages/.

Для активации виртуального окружения выполняем команду:
Код:
source codeby/bin/activate

И если все сделано правильно, вы увидите что перед приглашением в командную строку, появилось имя виртуального окружения.

virtualenv_run.png


Давайте теперь посмотрим какие у нас сейчас есть библиотеки в нашем окружении, для этого выполним команду:
Код:
pip freeze[CODE]

[ATTACH type="full" width="734px" alt="virtualenv_freeze_null.png"]42726[/ATTACH]

Как видим, список библиотек у нас пуст, пополним его установив какую нибудь библиотеку, пускай это будет requests, выполняем команду:
[CODE]pip install requests

И снова посмотрим на список библиотек командой:
Код:
pip freeze

virtualenv_install_lib.png


Теперь в нашей изолированной среде есть библиотека requests и ее зависимости.
Для того что бы закончить работу с фантомным окружением нужно выполнить команду:
Код:
deactivate

Screenshot_deactivate.png


Заключение и полезные ссылки

Как вы могли заметить, виртуальное окружение это очень удобный и простой инструмент, который сделает вашу работу и других разработчиков, что будут заниматься поддержкой вашего кода, чуточку проще.
Очень надеюсь что вы узнали для себя что то новое и теперь будете пользоваться этим программным обеспечением.
Так же я оставляю ссылки для того что бы вы могли более подробно изучить инструмент Virutalenv и работу с виртуальными средами:


 
Последнее редактирование модератором:

Proxy n1nja

Green Team
28.06.2018
118
149
BIT
0
А в чем проблема, юзать так: python3 -m venv codeby
вот тут
и вся проблема. Вообще его можно использовать если тебе не нужно поддерживать проекты на Python2.x и venv не копирует в папку виртуального окружения бинарник от питона в отличии от virtualenv.
P.S.
virtualenv вроде как и популярнее, но это ИМХО.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!