Linux install python virtualenv

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.

Contents

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 from the official repositories 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.

This tool is provided by python (3.3+):

virtualenv

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

And virtualenv2 for Python 2, available in python2-virtualenv .

Activation

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

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

The binary versions depend on which virtual environment tool was used. For instance, the python command used in the Python 2 example points to bin/python2.7 , while the one in the venv example points to bin/python3.7 .

One major difference between venv and virtualenv is that the former uses the system’s Python binary by default:

The virtualenv tool uses a separate Python binary in the environment directory:

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 both python-virtualenv and python2-virtualenv .

Installation

Now add the following lines to your

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 a virtualenvwrapper function is called.

Re-open your console and create the WORKON_HOME folder:

Читайте также:  Git bash для mac os

Basic usage

The main information source on virtualenvwrapper usage (and extension capability) is Doug Hellmann’s page.

Create the virtual environment:

Activate the virtual environment:

Install some package inside the virtual environment (say, 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.

Источник

Installation¶

via pipx¶

virtualenv is a CLI tool that needs a Python interpreter to run. If you already have a Python 3.5+ interpreter the best is to use pipx to install virtualenv into an isolated environment. This has the added benefit that later you’ll be able to upgrade virtualenv without affecting other parts of the system.

via pip¶

Alternatively you can install it within the global Python interpreter itself (perhaps as a user package via the —user flag). Be cautious if you are using a python install that is managed by your operating system or another package manager. pip might not coordinate with those tools, and may leave your system in an inconsistent state. Note, if you go down this path you need to ensure pip is new enough per the subsections below:

wheel¶

Installing virtualenv via a wheel (default with pip) requires an installer that can understand the python-requires tag (see PEP-503), with pip this is version 9.0.0 (released 2016 November). Furthermore, in case you’re not installing it via the PyPi you need to be using a mirror that correctly forwards the python-requires tag (notably the OpenStack mirrors don’t do this, or older devpi versions — added with version 4.7.0 ).

sdist¶

When installing via a source distribution you need an installer that handles the PEP-517 specification. In case of pip this is version 18.0.0 or later (released on 2018 July). If you cannot upgrade your pip to support this you need to ensure that the build requirements from pyproject.toml are satisfied before triggering the install.

via zipapp¶

You can use virtualenv without installing it too. We publish a Python zipapp, you can just download this from https://bootstrap.pypa.io/virtualenv.pyz and invoke this package with a python interpreter:

The root level zipapp is always the current latest release. To get the last supported zipapp against a given python minor release use the link https://bootstrap.pypa.io/virtualenv/x.y/virtualenv.pyz , e.g. for the last virtualenv supporting Python 2.7 use https://bootstrap.pypa.io/virtualenv/2.7/virtualenv.pyz.

If you are looking for past version of virtualenv.pyz they are available here: https://github.com/pypa/get-virtualenv/blob/ /public/

via setup.py ¶

We don’t recommend and officially support this method. One should prefer using an installer that supports PEP-517 interface, such as pip 19.0.0 or later. That being said you might be able to still install a package via this method if you satisfy build dependencies before calling the install command (as described under sdist ).

latest unreleased¶

Installing an unreleased version is discouraged and should be only done for testing purposes. If you do so you’ll need a pip version of at least 18.0.0 and use the following command:

Читайте также:  Как открыть файл doc windows 10

Python and OS Compatibility¶

virtualenv works with the following Python interpreter implementations:

CPython versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10

This means virtualenv works on the latest patch version of each of these minor versions. Previous patch versions are supported on a best effort approach.

CPython is shipped in multiple forms, and each OS repackages it, often applying some customization along the way. Therefore we cannot say universally that we support all platforms, but rather specify some we test against. In case of ones not specified here the support is unknown, though likely will work. If you find some cases please open a feature request on our issue tracker.

Linux¶

Ubuntu 16.04+ (both upstream and deadsnakes builds)

Источник

linux-notes.org

У меня имеется некоторая ненависть к разработчикам python из-за того, что они наделали много версий и они не особо дружат между собой. И программы написанные на python 2.7, могут не работать на python 3.5. Приходится ставить разные версии ПО чтобы заработала та или иная утилита написанная на питон. Чтобы не засорять сервер, имеется отличное решение — использовать virtualenv и virtualenvwrapper. Это изолированное переменное окружение (ENV) для питон.

Я решил изучить как оно работает и записать заметку по данной теме «Установка virtualenv + virtualenvwrapper в Unix/Linux«. Собственно, я расскажу как установить, настроить и использовать virtualenv + virtualenvwrapper в среде Unix/Linux.

И так, что же помогает решить virtualenv?

Т.к PIP (по умолчанию) ставит все необходимые пакеты глобально в систему. Это хорошо подходит, если используется один проект и он заточен под конкретную версию питона, но если в системе имеется проекты с большим количеством зависимостей, в которых используется что-то тяжелое и ломающее обратную совместимость между релизами.

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

Что касается virtualenvwrapper, — это нечто похожее на virtualenv, но в нем упрошено использование.

Установка virtualenv + virtualenvwrapper в Unix/Linux

И так, начнем установку virtualenv + virtualenvwrapper на различные ОС. Но прежде чем начнем, необходимо установить python ( разные версии). Кто не знает как это сделать, то вот отличный мануал:

Я, в данной теме, рассказывал как установить питон с разными версиями.

Установка virtualenv + virtualenvwrapper в CentOS/Fedora/RedHat

-===СПАСОБ 1 — использовать PIP==

Самый простой способ установить все, — это использовать PIP. Я расскажу как установить его немного ниже.

-===СПАСОБ 2 — использовать пакетный менеджер==

Используем пакетный менеджер yum и выполняем установку:

И можно идти дальше….

-===СПАСОБ 3 — скомпилировать с исходного кода==

Собрать все вручную. Но я пока что — это делать не буду.

Установка virtualenv + virtualenvwrapper в Debian/Ubuntu

-===СПАСОБ 1 — использовать PIP==

Самый простой способ установить все, — это использовать PIP. Я расскажу как установить его немного ниже.

-===СПАСОБ 2 — использовать пакетный менеджер==

Используем пакетный менеджер apt-get и выполняем установку:

Что касается virtualenvwrapper, то ставим его через PIP.

-===СПАСОБ 3 — скомпилировать с исходного кода==

Собрать все вручную. Но я пока что — это делать не буду.

Установка virtualenv + virtualenvwrapper в FreeBSD

-===СПАСОБ 1 — использовать PIP==

Самый простой способ установить все, — это использовать PIP. Я расскажу как установить его немного ниже.

Читайте также:  Что будет с windows неактивированным ключом

-===СПАСОБ 2 — используем порты==

-===СПАСОБ 3 — скомпилировать с исходного кода==

Собрать все вручную. Но я пока что — это делать не буду.

Установка virtualenv + virtualenvwrapper в Mac OS X

-===СПАСОБ 1 — использовать PIP==

Самый простой способ установить все, — это использовать PIP. Я расскажу как установить его немного ниже.

-===СПАСОБ 2 — используем homebrew==

Выполним поиск пакетов:

Чтобы включить автоматическую активацию, добавьте в свой профиль (

Или, можно сделать это так:

-===СПАСОБ 3 — скомпилировать с исходного кода==

Собрать все вручную. Но я пока что — это делать не буду.

Установка virtualenv + virtualenvwrapper через PIP

Для начала, стоит установить сам pip:

После чего, запускаем:

PS: можно использовать easy_install (как я собственно и делал):

Если имеется питон 3, то он ставит pip3. Чтобы установить virtualenv и virtualenvwrapper используйте :

И переходим к использованию…

Использование virtualenv + virtualenvwrapper в Unix/Linux

Сейчас, я приведу пример того, что используется на моем тестовом сервере. Проверяем версию питона:

Так же, я установил python 2.7, который находятся:

Так же, я установил python 3.4, который находятся:

Собственно сейчас я, создам переменное окружение для питона2 и питона3. Но для начала, нужно все подготовить.

Настройка virtualenvwrapper в Unix/Linux

Открываем bashrc для конкретного пользователя:

Добавляем следующие строки ( можно в самый низ файла):

В VIRTUALENVWRAPPER_PYTHON переменную, передаем местоположения питона который будет экспортироваться.

PS: Чтобы найти местоположение virtualenvwrapper.sh, можно использовать locate утилиту — Установка locate и updatedb в Unix/Linux

Чтобы использовать Setuptools поверх Ditribute, вы можете установить переменную окружения вашей системы VIRTUALENV_SETUPTOOLS, чтобы Setuptools стал вместо Ditribute:

Чтобы все изменения вступили в силу, нужно выполнить:

ХОЧУ ОТМЕТИТЬ, ЧТО В MAC OS X — ЭТО ДЕЛАЕТСЯ НЕМНОГО НЕ ТАК!

Использование virtualenv + virtualenvwrapper в Unix/Linux

Я расскажу оба варианта использования, а какой выбрать — решать вам.

При использовании virtualenv.

Вроде бы работает.

Сейчас немного оптимизирую….

При использовании virtualenvwrapper.

Для еще большего комфорта при работе с virtualenv Doug Hellmann написал расширение virtualenvwrapper, которое делает все манипуляции с окружениям еще проще.

Проверим какая версия используется:

Сейчас я, создам переменное окружение:

И создаем ENV сново:

Чтобы установить в него все необходимое (setuptools, pip, wheel), используйте:

PS: При создании «сандбокса с питоном», создастся он с той версией питона которая стоит в системе по дефолту! Чтобы создать бокс с конкретной версией питона, используйте ( как пример пион 2.7):

ИЛИ, выбираем версию python, которая будет использоваться в создаваемом виртуальном окружении и указываем, что мы не будем использовать системные пакеты::

PS: Чтобы использовать установленные в системе пакеты (если не нашлись в окружении):

Так же, можно использовать и еще один вариант:

Чтобы посмотреть список доступных ENV:

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

Для смены окружение, имеется команда:

Для перехода в домашнюю директорию данного env, используем:

Чтобы активировать, используем:

PS: Думаю не нужно пояснять строку и так все понятно.

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

Можно сохранить все используемые зависимости в файл:

Чтобы установить все необходимые зависимости с файла, используйте:

Для python2 используется pip, для python3 — pip3!

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

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

А на этом, у меня все, статья «virtualenv + virtualenvwrapper» подошла к завершению.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

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