What is virtual linux environment

What is a virtual machine (VM)?

A virtual machine (VM) is a virtual environment that functions as a virtual computer system with its own CPU, memory, network interface, and storage, created on a physical hardware system (located off- or on-premises). Software called a hypervisor separates the machine’s resources from the hardware and provisions them appropriately so they can be used by the VM.

The physical machines, equipped with a hypervisor such as Kernel-based Virtual Machine (KVM), is called the host machine, host computer, host operating system, or simply host. The many VMs that use its resources are guest machines, guest computers, guest operating systems, or simply guests. The hypervisor treats compute resources—like CPU, memory, and storage—as a pool of resources that can easily be relocated between existing guests or to new virtual machines.

VMs allow multiple different operating systems to run simultaneously on a single computer—like a Linux® distro on a MacOS laptop. Each operating system runs in the same way an operating system or application normally would on the host hardware, so the end user experience emulated within the VM is nearly identical to a real-time operating system experience running on a physical machine.

How do VMs work?

Virtualization technology allows you to share a system with many virtual environments. The hypervisor manages the hardware and separates the physical resources from the virtual environments. Resources are partitioned as needed from the physical environment to the VMs.

When the VM is running and a user or program issues an instruction that requires additional resources from the physical environment, the hypervisor schedules the request to the physical system’s resources so that the virtual machine’s operating system and applications can access the shared pool of physical resources.

Источник

Python/Virtual environment

virtualenv is a tool used to create an isolated workspace for a Python application. It has various advantages such as the ability to install modules locally, export a working environment, and execute a Python program in that environment.

Читайте также:  Usb vga видеокарта linux

Overview

A virtual environment is a directory into which some binaries and shell scripts are installed. The binaries include python for executing scripts and pip for installing other modules within the environment. There are also shell scripts (one for bash, csh, and fish) to activate the environment. Essentially, a virtual environment mimics a full system install of Python and all of the desired modules without interfering with any system on which the application might run.

In 2017, Pipenv was published which manages all the above tools — managing virtual environments of python interpreters, package dependencies, their activation and reproducible locking of versions in Pipfiles.

Installation

Python 3.3+ comes with a module called venv. For applications that require an older version of Python, virtualenv must be used.

Packages

Install one of these packages to use a Python virtual environment:

Usage

All three tools use a similar workflow.

Creation

Use venv or virtualenv to create the virtual environment within your project directory. Be sure to exclude the venv directory from version control—a copy of pip freeze will be enough to rebuild it.

venv

This tool is provided by python (3.3+):

$ python -m venv envname 

virtualenv

Use virtualenv for Python 3, available in python-virtualenv .

Activation

Use one of the provided shell scripts to activate and deactivate the environment. This example assumes bash is used.

$ source envname/bin/activate (envname) $

Once inside the virtual environment, modules can be installed with pip and scripts can be run as normal.

To exit the virtual environment, run the function provided by bin/activate :

Python versions

By default, virtual environments are created using system Python. The bin/python binary is just a symlink to system python:

$ ls -l envname/bin/python lrwxrwxrwx 1 foo foo 15 Jan 29 18:48 envname/bin/python -> /usr/bin/python

If you want to use a different Python version inside the virtual environment, you can use the -p / —python option of virtualenv:

$ virtualenv -p 3.8 envname $ ls -l envname/bin/python lrwxrwxrwx 1 foo foo 18 Jan 29 18:48 envname/bin/python -> /usr/bin/python3.8
$ virtualenv -p pypy3 envname 

virtualenvwrapper

virtualenvwrapper allows more natural command line interaction with your virtual environments by exposing several useful commands to create, activate and remove virtual environments. This package is a wrapper for python-virtualenv .

Читайте также:  Red hat enterprise linux upgrade

Installation

Install the python-virtualenvwrapper package and add the following lines to your ~/.bashrc :

export WORKON_HOME=~/.virtualenvs source /usr/bin/virtualenvwrapper.sh

The line source /usr/bin/virtualenvwrapper.sh can cause some slowdown when starting a new shell. To fix this try using source /usr/bin/virtualenvwrapper_lazy.sh , which will load virtualenvwrapper the first time virtualenvwrapper functions are called.

Re-open your console to apply changes. The WORKON_HOME directory will be created automatically.

Basic usage

Create the virtual environment (all command line options except -a , -i , -r , and -h are passed directly to virtualenv, so you can use -p to select Python version):

$ mkvirtualenv envname 

Activate the virtual environment:

Install some package inside the virtual environment (say, Django):

(envname) $ pip install django

After you have done your things, leave the virtual environment:

Pipenv

pipenv allows better managed CLI interactions by providing a single program that does all the functions of the above tools.

Installation

Basic usage

All commands can be executed in the project folder, and pipenv will recognize the specific situation — whether a virtualenv exists in the directory, locating it, and running on the specific virtual interpreter when pipenv is executed.

See also

Источник

Python (Русский)/Virtual environment (Русский)

Состояние перевода: На этой странице представлен перевод статьи Python/Virtual environment. Дата последней синхронизации: 28 мая 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

virtualenv — это инструмент, используемый для создания изолированного рабочего пространства для приложения Python. Он даёт некоторые преимущества: например, возможность локальной установки модулей, экспорта рабочей среды и выполнения программы Python внутри этого окружения.

Обзор

Виртуальное окружение (virtual environment) — это каталог, в который устанавливаются некоторые исполняемые файлы и скрипты. Среди файлов есть python для выполнения скриптов и pip для установки других модулей в окружении. Также есть скрипты для активации окружения в различных командных оболочках (для bash, csh и fish). По сути, виртуальное окружение имитирует полную системную установку Python и всех необходимых модулей, не вмешиваясь в работу системы, на которой будет запускаться приложение.

В 2017 году был опубликован Pipenv, который управляет всеми вышеперечисленными инструментами: виртуальными окружениями интерпретаторов python, зависимостями пакетов, их активацией и блокировкой версий в Pipfile.

Установка

Python 3.3+ поставляется с модулем venv. Для более старых версий Python можно использовать сторонний инструмент virtualenv.

Читайте также:  Топ самых красивых дистрибутивов линукс

Пакеты

Установите один из следующих пакетов:

Использование

Все три инструмента похожи.

Создание

Используйте venv или virtualenv для создания виртуального окружения в каталоге вашего проекта. Не забудьте исключить каталог venv из вашей системы контроля версий — для его восстановления достаточно копии pip freeze .

venv

$ python -m venv envname 

virtualenv

Активация

Для активации виртуального окружения используйте один из имеющихся скриптов для вашей командной оболочки. Пример для bash:

$ source envname/bin/activate (envname) $

Теперь команды python и pip будут запускаться и управлять пакетами только внутри виртуального окружения, не затрагивая систему.

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

Версии Python

По умолчанию виртуальные окружения создаются с использованием стандартного системного Python. Файл bin/python — это просто символическая ссылка на системный python:

$ ls -l envname/bin/python lrwxrwxrwx 1 foo foo 15 янв 29 18:48 envname/bin/python -> /usr/bin/python

Если вы хотите использовать другую версию Python внутри виртуального окружения, можно использовать опцию -p / —python у virtualenv:

$ virtualenv -p 3.8 envname $ ls -l envname/bin/python lrwxrwxrwx 1 foo foo 18 янв 29 18:48 envname/bin/python -> /usr/bin/python3.8
$ virtualenv -p pypy3 envname 

virtualenvwrapper

virtualenvwrapper позволяет более удобно управлять виртуальными окружениями через командную строку, предоставляя несколько полезных команд для создания, активации и удаления виртуальных окружений. Этот пакет является обёрткой для python-virtualenv .

Установка

export WORKON_HOME=~/.virtualenvs source /usr/bin/virtualenvwrapper.sh

Строка source /usr/bin/virtualenvwrapper.sh может несколько замедлить запуск новой командной оболочки. Для решения проблемы можно использовать source /usr/bin/virtualenvwrapper_lazy.sh , который загрузит virtualenvwrapper только при первом обращении к нему.

Перезапустите консоль для применения изменений. Каталог WORKON_HOME будет создан автоматически.

Использование

Подробности можно почитать в официальной документации.

Создание виртуального окружения (все опции командной строки, кроме -a , -i , -r и -h , передаются в virtualenv, так что можно использовать опцию -p для выбора нужной версии Python):

$ mkvirtualenv envname 

Активация виртуального окружения:

Установка пакета внутри виртуального окружения (скажем, Django):

(envname) $ pip install django

Выход из виртуального окружения:

Pipenv

pipenv упрощает управление через командную строку, предоставляя одну программу, которая выполняет все функции вышеперечисленных инструментов.

Установка

Использование

Все команды можно выполнять в папке проекта, и pipenv распознает текущую ситуацию — найдёт виртуальное окружение в текущем каталоге и будет использовать его.

Подробности в документации: [1], [2], [3].

Смотрите также

Источник

Оцените статью
Adblock
detector