Вступление
Доброго времени суток, коллеги, сегодня мне хотелось бы поговорить с вами о такой вещи, как виртуальное окружение. Что же это за зверь такой? Для чего он нужен, какие проблемы решает ?
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 codeby
Где Codeby это имя нашего окружения.
В текущем каталоге будет создана папка с именем виртуального окружения, в данном случае "Codeby", давайте ее рассмотрим.
Внутри папки мы видим файл 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
И если все сделано правильно, вы увидите что перед приглашением в командную строку, появилось имя виртуального окружения.
Давайте теперь посмотрим какие у нас сейчас есть библиотеки в нашем окружении, для этого выполним команду:
Код:
pip freeze[CODE]
[ATTACH type="full" width="734px" alt="virtualenv_freeze_null.png"]42726[/ATTACH]
Как видим, список библиотек у нас пуст, пополним его установив какую нибудь библиотеку, пускай это будет requests, выполняем команду:
[CODE]pip install requests
И снова посмотрим на список библиотек командой:
Код:
pip freeze
Теперь в нашей изолированной среде есть библиотека requests и ее зависимости.
Для того что бы закончить работу с фантомным окружением нужно выполнить команду:
Код:
deactivate
Заключение и полезные ссылки
Как вы могли заметить, виртуальное окружение это очень удобный и простой инструмент, который сделает вашу работу и других разработчиков, что будут заниматься поддержкой вашего кода, чуточку проще.
Очень надеюсь что вы узнали для себя что то новое и теперь будете пользоваться этим программным обеспечением.
Так же я оставляю ссылки для того что бы вы могли более подробно изучить инструмент Virutalenv и работу с виртуальными средами:
Ссылка скрыта от гостей
Ссылка скрыта от гостей
Последнее редактирование модератором: