virtualenvwrapper Python

Contents
Introduction
virtualenvwrapper в Windows
virtualenvwrapper в Linux

Introduction

virtualenvwrapper изначально был написан для UNIX-подобных операционных систем Дагом Хеллманном (англ. Doug Hellmann)

Для Windows существует две версии: virtualenvwrapper-win для обычной консоли и virtualenvwrapper-powershell для PowerShell

virtualenvwrapper-win

Разберём работу с virtualenvwrapper-win и virtualenvwrapper-powershell

Установка

pip install virtualenvwrapper-win

Или для Linux

pip install virtualenvwrapper

Для Linux и MacOS

После установке нужно проверить куда именно установился virtualenvwrapper

Это можно сделать командой

which virtualenvwrapper.sh

usr/local/bin/virtualenvwrapper.sh

vi .profile

Нужно добавить следующий код

source usr/local/bin/virtualenvwrapper.sh

Перезапустить терминал и добавить ещё две строчки

export WORKON_HOME="/home/andreyolegovich/virtualenvs" export PROJECT_HOME="/home/andreyolegovich/projects"

Первая строка не обязательна - по умолчанию всё-равно будет создана какая-то директория.

А вот без второй не будет работать mkproject создающий проекты, поэтому советую её добавить.

Начало работы

После установки execute

workon

Pass a name to activate one of the following virtualenvs: ============================================================================== File Not Found

Ничего не найдено. Хотя мы уже создавали виртуальные окружения. Видимо, дело в том, что virtualenvwrapper-win хранит окружения в другом месте.

Выполним

lsvirtualenv

dir /b /ad "C:\Users\Andrei\Envs" ============================================================================== dir /b /ad "C:\Users\Andrei\Envs" ==============================================================================

Видно, что окружения лежат на диске C в папке Envs пользователя Andrei

Создание нового окружения

Создать новое окружение можно командой mkvirtualenv

mkvirtualenv testEnv

created virtual environment CPython3.8.2.final.0-32 in 955ms creator CPython3Windows(dest=C:\Users\Andrei\Envs\testEnv, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Andrei\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

lsvirtualenv

dir /b /ad "C:\Users\Andrei\Envs" ============================================================================== testEnv

Это окружение уже видно

workon

Pass a name to activate one of the following virtualenvs: ============================================================================== testEnv

workon тоже увидел новое окружение.

To активировать его вводим

workon testEnv

Если ничего не происходит проверьте в какой консоли Вы работаете, например, virtalenvwrapper-win не работает с PowerShell.

Нужно работать в обычной командной строке либо установить virtualenvwrapper-powershell

Создание нового проекта

Теперь я хочу создать проект heihei для работы над сайтом HeiHei.ru

mkproject heihei

ERROR: set environment variable PROJECT_HOME to the directory where projects are stored.

Создадим новую переменную окружения для Windows.

Если Вы не знаете как это сделать - прочитайте статью PATH

Создание переменной окружения PROJECT_HOME image from website www.aredel.com

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

mkproject heihei

created virtual environment CPython3.8.2.final.0-32 in 851ms creator CPython3Windows(dest=C:\Users\Andrei\Envs\heihei, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Andrei\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator "C:\Users\Andrei\PROJECT_HOME\heihei" is now the project directory for virtualenv "C:\Users\Andrei\Envs\heihei" "C:\Users\Andrei\PROJECT_HOME\heihei" added to C:\Users\Andrei\Envs\heihei\Lib\site-packages\virtualenv_path_extensions.pth (heihei) C:\Users\Andrei\PROJECT_HOME\heihei>

Как Вы уже увидели, mkproject создаёт также и виртуальное окружение и автоматически активирует его.

При создании проекта можно задать какую версию python нужно использовать

mkproject -p python3 topbicycle.ru

To связать активное виртуальное окружение с текущей директорией нужно выполнить

servirtualenvproject

To удалить виртуальное окружение нужно выполнить

rmvirtualenv topbicycle.ru

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

mktmpenv

virtualenvwrapper

Разберём работу с virtualenvwrapper в Ubuntu

Contents главы
Установка в Linux
Настройки .profile
Начало работы с virtualenvwrapper

Установка

Устанавливать нужно глобально, то есть активировать виртуальное окружение перед установкой не нужно. Убедитесь, что деактивировали.

Execute command

pip install virtualenvwrapper

или

pip3 install virtualenvwrapper

или

python3 -m pip install virtualenvwrapper

Collecting virtualenvwrapper Downloading virtualenvwrapper-4.8.4.tar.gz (334 kB) |████████████████████████████████| 334 kB 2.3 MB/s Requirement already satisfied: virtualenv in /home/andrei/.local/lib/python3.8/site-packages (from virtualenvwrapper) (20.0.35) Collecting virtualenv-clone Downloading virtualenv_clone-0.5.4-py2.py3-none-any.whl (6.6 kB) Collecting stevedore Downloading stevedore-3.2.2-py3-none-any.whl (42 kB) |████████████████████████████████| 42 kB 111 kB/s Requirement already satisfied: filelock<4,>=3.0.0 in /home/andrei/.local/lib/python3.8/site-packages (from virtualenv->virtualenvwrapper) (3.0.12) Requirement already satisfied: distlib<1,>=0.3.1 in /home/andrei/.local/lib/python3.8/site-packages (from virtualenv->virtualenvwrapper) (0.3.1) Requirement already satisfied: appdirs<2,>=1.4.3 in /home/andrei/.local/lib/python3.8/site-packages (from virtualenv->virtualenvwrapper) (1.4.4) Requirement already satisfied: six<2,>=1.9.0 in /usr/lib/python3/dist-packages (from virtualenv->virtualenvwrapper) (1.14.0) Collecting pbr!=2.1.0,>=2.0.0 Using cached pbr-5.5.0-py2.py3-none-any.whl (106 kB) Building wheels for collected packages: virtualenvwrapper Building wheel for virtualenvwrapper (setup.py) ... done Created wheel for virtualenvwrapper: filename=virtualenvwrapper-4.8.4-py2.py3-none-any.whl size=24850 sha256=15affb0b0bd7c3e14a8cc826c2c23d28c7a5b85b5a5dfdc5d4a27bca6575a19f Stored in directory: /home/andrei/.cache/pip/wheels/47/15/3d/7a26eaf92e79f80a3df3ac5f8e0f0f5b7efdf24d313c594a44 Successfully built virtualenvwrapper Installing collected packages: virtualenv-clone, pbr, stevedore, virtualenvwrapper Successfully installed pbr-5.5.0 stevedore-3.2.2 virtualenv-clone-0.5.4 virtualenvwrapper-4.8.4

После установке нужно проверить куда именно установился virtualenvwrapper.

Это можно сделать командой

which virtualenvwrapper.sh

/home/andrei/.local/bin/virtualenvwrapper.sh

Настраиваем профиль

Отредактируем файл .profile

Это файл с частью конфигурации вашей оболочки (shell), например Bash есть и другие файлы с конфигурацией Bash, например bashrc , подробнее читайте в статье «Основы Bash» пока что достаточно знать про .profile

Перейдём в домашнюю директорию

cd ~

И выполним

vi .profile

Подробнее о работе с vi читайте в статье «Introduction в редактор vi»

Дефолтный .profile выглядит примерно так:

# ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if ] -n " $BASH_VERSION" [; then # include .bashrc if it exists if ] -f " $HOME/.bashrc" [; then . " $HOME/.bashrc" fi fi # set PATH so it includes user' s private bin if it exists if ] -d " $HOME/bin" [ ; then PATH=" $HOME/bin:$PATH" fi # set PATH so it includes user' s private bin if it exists if ] -d " $HOME/.local/bin" [ ; then PATH=" $HOME/.local/bin:$PATH" fi alias ls=' ls -la'

Нужно добавить в конец следующий код

source /home/andrei/.local/bin/virtualenvwrapper.sh

После source указан результат команды which virtualenvwrapper.sh

Перезапустите терминал и добавьте ещё две строчки

export WORKON_HOME="/home/andrei/python/virtualenvs" export PROJECT_HOME="/home/andrei/python/projects"

Первая строка не обязательна - по умолчанию всё-равно будет создана какая-то директория.

А вот без второй не будет работать mkproject создающий проекты, поэтому советую её добавить.

Начало работы

После установки execute

workon

answerit_env tutorial_env

lsvirtualenv

dir /b /ad "C:\Users\Andrei\Envs" ============================================================================== dir /b /ad "C:\Users\Andrei\Envs" ==============================================================================

Видно, что окружения лежат на диске C в папке Envs пользователя Andrei

Создание нового окружения

Создать новое окружение можно командой mkvirtualenv

mkvirtualenv testEnv

created virtual environment CPython3.8.2.final.0-32 in 955ms creator CPython3Windows(dest=C:\Users\Andrei\Envs\testEnv, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Andrei\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

lsvirtualenv

dir /b /ad "C:\Users\Andrei\Envs" ============================================================================== testEnv

Это окружение уже видно

workon

Pass a name to activate one of the following virtualenvs: ============================================================================== testEnv

workon тоже увидел новое окружение.

To активировать его вводим

workon testEnv

Если ничего не происходит проверьте в какой консоли Вы работаете, например, virtalenvwrapper-win не работает с PowerShell.

Нужно работать в обычной командной строке либо установить virtualenvwrapper-powershell

Создание нового проекта

Теперь я хочу создать проект heihei для работы над сайтом HeiHei.ru

mkproject heihei

ERROR: set environment variable PROJECT_HOME to the directory where projects are stored.

Создадим новую переменную окружения для Windows.

Если Вы не знаете как это сделать - прочитайте статью PATH

Создание переменной окружения PROJECT_HOME image from website www.aredel.com

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

mkproject heihei

created virtual environment CPython3.8.2.final.0-32 in 851ms creator CPython3Windows(dest=C:\Users\Andrei\Envs\heihei, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Andrei\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator "C:\Users\Andrei\PROJECT_HOME\heihei" is now the project directory for virtualenv "C:\Users\Andrei\Envs\heihei" "C:\Users\Andrei\PROJECT_HOME\heihei" added to C:\Users\Andrei\Envs\heihei\Lib\site-packages\virtualenv_path_extensions.pth (heihei) C:\Users\Andrei\PROJECT_HOME\heihei>

Как Вы уже увидели, mkproject создаёт также и виртуальное окружение и автоматически активирует его.

При создании проекта можно задать какую версию python нужно использовать

mkproject -p python3 topbicycle.ru

To связать активное виртуальное окружение с текущей директорией нужно выполнить

servirtualenvproject

To удалить виртуальное окружение нужно выполнить

rmvirtualenv topbicycle.ru

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

mktmpenv

Возможные проблемы

1

Если при перезапуске консоли вы видите

-bash: usr/local/bin/virtualenvwrapper.sh: No such file or directory

Значит в .profile вы указали source не правильно

2

/usr/bin/python: No module named virtualenvwrapper virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenvwrapper has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is set properly.

Share in social media: