Как запустить программу в виртуальной среде

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

  • Простой пример: у вас есть два приложения, которые подключаются к одной и той же библиотеке. Вот только каждому приложению нужны разные ее версии.
  • Еще пример: вы хотите обеспечить работу приложения независимо от обновлений библиотек, которые устанавливаются в глобальном хранилище Python.
  • И третий пример: у вас нет доступа к этому хранилищу.

Выход во всех трех случаях — создать venv Python . Название модуля venv — это сокращение от Virtual Environment, то есть виртуальная среда. Venv представляет собой отличный инструмент для изоляции проектов, своеобразную песочницу. В ней мы можем запускать приложение со своими зависимостями, чтобы не мешать другим приложениям, которые используют то же ПО, но иных версий. В результате каждое приложение будет запускаться в собственной виртуальной среде, изолированно от остальных, что повысит стабильность работы всех приложений.

Виртуальная машина VirtualBox установка на компьютер с Windows 7 настройка и установка гостевой ОС

Как создать виртуальное окружение в Python 3

Приятная новость: отдельно устанавливать venv на Windows нам не потребуется, пакет является частью стандартной библиотеки Python 3 и поставляется вместе с интерпретатором.

Что касается Linux, то здесь venv далеко не всегда входит в пакет операционной системы, поэтому может потребоваться его установить. На Ubuntu/Debian это делается следующей командой:

sudo apt install -y python3-venv

Некоторые пакеты Python требуют сборки из исходных кодов, поэтому также может потребоваться установка следующих пакетов:

sudo apt install -y build-essential libssl-dev libffi-dev python3-dev

Теперь рассмотрим, как создать виртуальное окружение Python 3 в Windows и Linux с помощью venv .

Шаг 1. Запускаем venv

Сначала идет общая команда для всех ОС:

python -m venv venv

Разберем ее чуть подробнее. Здесь -m выступает в качестве инструкции для запуска модуля venv . А вторая запись venv указывает на каталог venv/lib/python3.8/site-packages/ (номер версии 3.8 добавлен просто для примера, она может быть и другой), в котором Python будет хранить все библиотеки и другие компоненты, необходимые для изолированной работы приложений.

Шаг 2. Активируем виртуальную среду

Активация виртуального окружения выполняется по-разному для Windows и Linux. В ОС от Microsoft понадобится запустить этот скрипт:

venvScriptsactivate.bat

А в Linux (и также в MacOS) нужно ввести вот такую инструкцию:

source venv/bin/activate

Если всё сделано правильно, будет выведена следующая запись:

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

Другие инструменты

Конечно, venv является самым современным инструментом для создания виртуальной среды. Но он появился только в Python 3. А что делать тем, кто по каким-то причинам работает с более старыми версиями языка? Ответ: пробовать иные инструменты, которые имеют и ряд других полезных функций, иначе бы мы о них даже не упоминали. Кратко опишем эти решения, а затем рассмотрим подробнее наиболее популярное.

Песочница в Windows. Программа Sandboxie

  • virtualenv . Простой и понятный инструмент, который пригодится при развертывании многих приложений. Поэтому он будет полезен для освоения, и ниже мы представим инструкцию по работе с ним.
  • pyenv . Позволяет изолировать версии «Питона». Полезен, если по какой-то причине вам требуется запускать разные версии Python — например, для тестирования программы.
  • virtualenvwrapper . Обертка для virtualenv , которая используется для хранения виртуальных сред и различных операций с ними (создание, копирование, удаление). Virtualenvwrapper хорош тем, что с его помощью можно легко переключаться между средами и использовать различные плагины для расширения функций.
Читайте также:
Как пользоваться программой evoscan

Создание виртуального окружения при помощи virtualenv

Рассмотрим этот процесс на примере ОС Linux. Впрочем, запуск virtualenv в Windows выполняется почти так же, разница будет лишь в путях, которые здесь будут иными, и скриптах. И это мы будем оговаривать отдельно.

Шаг 1. Устанавливаем virtualenv

Можно скачать исходники приложения и поставить его вручную, но удобнее всего сделать это с помощью менеджера pip . В этом случае всё, что вам понадобится, это ввести в консоли следующую инструкцию:

pip install virtualenv

Шаг 2. Создаем виртуальную среду

Этот шаг делается тоже при помощи всего одной небольшой инструкции:

virtualenv myenv

Эта простая команда создаст новый каталог в текущем. Разумеется, вместо myenv вы можете ввести любое другое имя для своего окружения. Теперь разберем структуру созданной директории:

  • в /myenv/bin будут размещены скрипты для работы с окружением, копия интерпретатора нужной версии, а также собственно pip и ряд приложений для пакетной обработки. Если вы работаете в Windows, то эта папка будет иметь другой адрес: /myenv/Scripts .
  • директории / myenv/lib , а также /myenv/include предназначены для хранения основных библиотек окружения. А все новые файлы будут загружаться в /myenv/lib/pythonX.X/site-packages/ , где вместо X.X будет указана ваша версия «Питона».

Шаг 3. Активируем виртуальную среду

В Linux и Windows это делается немного по-разному. Для Linux инструкция такая (будем использовать всё тот же пример с именем myenv , которое вы замените на нужное вам):

source myenv/bin/activate

А вот так это будет выглядеть в Windows:

myenvScriptsactivate.bat

При корректной активации вы увидите имя вашего виртуального окружения в нижней строке (выделили красным):

Если теперь создать виртуальную среду с ключом — system-site-packages , то вы получите доступ к общему хранилищу в рамках своей среды. Делается это так:

virtualenv —system-site-packages myenv

Обратите внимание, что путь к хранилищу в Linux и в Windows тоже будет разным: соответственно, для Линукса это будет /usr/lib/python3.8/site-packages , а для Виндовc — Python38Libsite-packages . Цифры версии, опять же, для примера, у вас она может быть другой.

Шаг 4. Выходим из виртуальной среды

После завершения работы с программой из нее нужно корректно выйти. В Linux это делается командой deactivate , а в Windows с помощью «батника», пакетного файла deactivate.bat .

Что нового?

Помимо уже рассмотренного модуля venv и virtualenv , существуют и более современные инструменты, обеспечивающие более гибкое управление проектами на Python, в том числе и в виртуальном окружении:

  • Poetry . Это менеджер, позволяющий управлять зависимостями приложения в виртуальной среде. Также он облегчает тесты и развертывание приложений, автоматизируя многие вещи.
  • Pipenv . И еще один менеджер, который уже содержит в себе pip и virtualenv , а также ряд других полезных инструментов. Этот менеджер создан для облегчения управления окружениями и пакетами, ведь многие разработчики на определенной стадии развития проекта сталкиваются с проблемами из-за контроля версий.

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

Главное о Poetry

Poetry способен взять на себя всю работу с библиотеками в рамках виртуальной среды, в том числе устанавливать, обновлять и публиковать их. Например, возможностей pip для этого уже не хватит. Кроме того, создание и упаковка приложения здесь реализована при помощи всего одной команды (замените myproject на собственное название):

poetry new myproject

А, например, инструкция poetry init позволит выполнить инициализацию проекта в уже созданной директории. Вводится эта инструкция из той же директории.

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

Главное о Pipenv

Если в двух словах, то Pipenv можно охарактеризовать, как pip + virtualenv , но с продвинутыми возможностями. И на самом деле возможности этого менеджера гораздо шире. Так, он избавляет от необходимости пользоваться не слишком удобным файлом зависимостей requirements.txt .

Вместо этого в Pipenv есть два других файла, один из которых, Pipfile.lock , позволяет связывать версии библиотек, что хорошо для безопасности разрабатываемых приложений. Ну, а собственно Pipfile является продвинутой заменой устаревшему файлу требований. А дело в том, что Pipfile , в отличие от requirements.txt , обновляется автоматически с изменением версий продукта, что здорово выручает при работе в команде, избавляя разработчиков от ошибок зависимостей. Pipenv можно найти здесь .

Читайте также:
Отменить программу стиральной машины LG

Что ж, теперь вы вооружены полным набором инструментов, и обилие зависимостей с разными версиями больше не должно вас пугать.

Источник: timeweb.cloud

Виртуальное окружение Python (venv)

Все сторонние пакеты устанавливаются менеджером PIP глобально. Проверить это можно просто командой pip show .

Location — путь до ваших глобальных пакетов.

В большинстве случаев, устанавливать пакеты глобально — плохая идея ‍♂️ Почему? Рассмотрим простой пример:

Допустим у нас есть два проекта: » Project A» и » Project B» . Оба проекта зависят от библиотеки Simplejson . Проблема возникает, когда для «Project A» нужна версия Simplejson 3.0.0, а для проекта «Project B» — 3.17.0. Python не может различить версии в глобальном каталоге site-packages — в нем останется только та версия пакета, которая была установлена последней.

Решение данной проблемы — создание виртуального окружения (virtual environment).

Основная цель виртуального окружения Python — создание изолированной среды для python-проектов

Это означает, что каждый проект может иметь свои собственные зависимости, независимо от других проектов.

Настройка виртуального окружения

Один из самых популярных инструментов для создания виртуального окружения — virtualenv . Однако в данной статье мы будем рассматривать более свежий инструмент venv .

Устанавливать venv не нужно — он входит в стандартную библиотеку Python

Создание

Для создания виртуального окружения, перейдите в директорию своего проекта и выполните:

python -m venv venv

Флаг -m указывает Python-у запустить venv как исполняемый модуль. venv/ — название виртуального окружения (где будут храниться ваши библиотеки).

В результате будет создан каталог venv/ содержащий копию интерпретатора Python, стандартную библиотеку и другие вспомогательные файлы.

Новые пакеты будут устанавливаться в venv/lib/python3.x/site-packages/

Активация

Чтобы начать пользоваться виртуальным окружением, необходимо его активировать:

  • venvScriptsactivate.bat — для Windows;
  • source venv/bin/activate — для Linux и MacOS.

source выполняет bash-скрипт без запуска дополнительного bash-процесса.

Проверить успешность активации можно по приглашению оболочки. Она будет выглядеть так:

Также новый путь до библиотек можно увидеть выполнив команду:

python -c «import site; print(site.getsitepackages())»

Интересный факт: в виртуальном окружении вместо команды python3 и pip3, можно использовать python и pip

Автоматическая активация

В некоторых случаях, процесс активации виртуального окружения может показаться неудобным (про него можно банально забыть ‍♀️).

На практике, для автоматической активации перед запуском скрипта, создают скрипт-обертку на bash :

#!/usr/bin/env bash source $BASEDIR/venv/bin/activate python $BASEDIR/my_app.py

Теперь можно установить права на исполнение и запустить нашу обертку:

chmod +x myapp/run.sh ./myapp/run.sh

Деактивация

Закончив работу в виртуальной среде, вы можете отключить ее, выполнив консольную команду:

Альтернативы venv

На данный момент существует несколько альтернатив для venv:

  • pipenv — это pipfile, pip и virtualenv в одном флаконе;
  • pyenv — простой контроль версий Питона;
  • poetry — новый менеджер для управления зависимостями;
  • autoenv — среды на основе каталогов;
  • pew — инструмент для управления несколькими виртуальными средами, написанными на чистом Python;
  • rez — интегрированная система конфигурирования, сборки и развертывания пакетов для программного обеспечения.

Стоит ли использовать виртуальное окружение в своей работе — однозначно да. Это мощный и удобный инструмент изоляции проектов друг от друга и от системы. С помощью виртуального окружения можно использовать даже разные версии Python!

Однако рекомендуем присмотреться к более продвинутым вариантам, например к pipenv или poetry .

Источник: pythonchik.ru

Виртуальная машина — «песочница» для экспериментов

Не секрет, что по мере знакомства с операционной системой многие пользователи начинают пробовать всё новые и новые её возможности — аппетит, как известно, приходит во время еды. Не редки и те, кто хочет попробовать другие операционные системы или новые версии уже установленной системы. Возникает вопрос — как осуществить это без вмешательства в ключевые компоненты системы и риска потери важных данных? Как вернуться назад в случае неудачных действий? Ответ прост — необходима виртуализация.

Читайте также:
Как удалить программу ipad на компьютер

Виртуальная машина — это своего рода «компьютер в компьютере» — эмулятор работы полноценного компьютера программными средствами. С её помощью можно всячески экспериментировать, не боясь что-либо испортить — ведь последствия будут минимальными и не затронут «родительскую» машину. Это своего рода «песочница» (sandbox), где «шаловливые дети» — программы могут работать без риска нанести среж программной и тем более аппаратной части компьютера. Даже ночной кошмар пользователей Windows — крах системы не затронет пользовательских данных. Любители поэкспериментировать с незнакомым софтом могут запускать его в виртуальной среде — кстати, предварительный запуск программ в безопасной среде является одним из основных средств проверки для современных антивирусов.

Однако, как и у всего в мире, у метода виртуализации имеются свои недостатки — ведь при запуске виртуальная ОС отнимает часть ресурсов основной системы. Одним из основных является проблема выделения оперативной памяти для «гостевой ОС» — ведь при работе она использует ресурсы «системы — хозяина», что не лучшим образом сказывается на работе и той и другой. Оптимальным считается выделять не более 50% оперативной памяти под работу виртуальной машины. Нижний предел пользователь выбирает сам, исходя из системных требований. Соответственно, надо делить и ресурсы графического процессора.

В силу специфичности метода виртуализации необходимо также наладить и обмен данными между системами — ведь за изолированность надо платить и файловую систему основной системы невозможно увидеть из гостевой. Для этого необходимо выделить общие папки — директории, в которых помещаются данные, предназначенные для переноса. Из гостевой системы они подключаются как общие сетевые диски — соответственно необходима и их настройка. Поддержка USB-устройств в виртуальной машине до сих пор остается головной болью пользователя.

В настоящее время в сфере виртуализации представлено множество разнообразного программного обеспечения, однако на первый план можно выдвинуть три из них — это VMware Workstation, Windows Virtual PC и Oracle WM VirtualBox. Они предоставляют наиболее полный набор программных решений для виртуализации. Ниже будет приведено их сравнение с точки зрения использования для дома.

VMware Workstation

VMware Workstation представляет собой прекрасный инструмент для виртуализации. Разработчики заявляют о поддержке более 200 типов операционных систем, которым можно выделить до 32 Гб оперативной памяти. Программа позиционируется как инструмент, предназначенный для разработчиков и тестеров ПО и является платной. Соответственно настроен и интерфейс — чтобы комфортно себя чувствовать, необходимо иметь начальные знания об установке и настройке виртуальных машин. Из преимуществ можно выделить улучшенную поддержку аппаратного ускорения 3D-графики и полную совместимость с визуальными эффектами, подобными Aero в Windows 7 и поддержку как 32- так и 64-битных систем.Однако не каждый пользователь согласится выложить $133 за программу.

Windows Virtual PC

Позиционируется как бесплатный продукт от Microsoft, что и определяет её основные характеристики. В первую очередь она предназначена для виртуализаци работы ОС семейства Windows с целью обеспечения совместимости программ с Windows 7. Довольно проста в установке и использовании, имеется поддержка USB-устройств.

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

Oracle WM VirtualBox

Является примером программы с открытым исходным кодом. Полностью бесплатна для домашнего использования. VirtualBox поддерживает все типы операционных систем как основных так и гостевых, что делает её незаменимым инструментом для тестов операционных систем и ПО. Поддерживает подключение ISO-образов в качестве дисковых устройств и USB-устройств.

Одним из преимуществ является поддержка многоядерных процессоров и высокая производительность. Также имеется хороший набор опций для соединения с Интернетом. На сегодняшний день VirtualBox является наилучшим решением для домашнего использования.

Источник: www.softhome.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru