ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Этичный хакинг или пентестинг (https://forum.antichat.xyz/forumdisplay.php?f=209)
-   -   Виртуальная среда Python - основы Viertualenv (https://forum.antichat.xyz/showthread.php?t=574446)

Proxy n1nja 27.07.2020 09:45

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

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

https://forum.antichat.xyz/attachmen...7db0b56fb0.png

Работа с виртуальным окружением
Создаем виртуальное окружение следующей командой:

Код:


Код:

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

https://forum.antichat.xyz/attachmen...179dbf7a40.png

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

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

Для активации виртуального окружения выполняем команду:

Код:


Код:

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

https://forum.antichat.xyz/attachmen...fc835e6d6a.png

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

Код:


[CODE]
pip freeze[CODE]

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

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

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

Код:


Код:

pip freeze
https://forum.antichat.xyz/attachmen...eb6d19b683.png

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

Код:


Код:

deactivate
https://forum.antichat.xyz/attachmen...a1b906f303.png

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

Официальная документация по virtualenv
Шпаргалка по virtualenv

Shadow User 27.07.2020 12:21

А в чем проблема, юзать так: python3 -m venv античат

Proxy n1nja 27.07.2020 12:40

Цитата:


Shadow User сказал(а):

А в чем проблема, юзать так: python3 -m venv античат


вот тут

Цитата:


Shadow User сказал(а):

python3


и вся проблема. Вообще его можно использовать если тебе не нужно поддерживать проекты на Python2.x и venv не копирует в папку виртуального окружения бинарник от питона в отличии от virtualenv.
P.S.
virtualenv вроде как и популярнее, но это ИМХО.


Время: 05:09