virtualenvwrapper Python

Содержание статьи
Введение
virtualenvwrapper в Windows
virtualenvwrapper в Linux

Введение

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 создающий проекты, поэтому советую её добавить.

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

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

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 тоже увидел новое окружение.

Чтобы активировать его вводим

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 изображение с сайта www.andreyolegovich.ru

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

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

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

servirtualenvproject

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

rmvirtualenv topbicycle.ru

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

mktmpenv

virtualenvwrapper

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

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

Установка

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

Выполните команду

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 читайте в статье «Введение в редактор 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 создающий проекты, поэтому советую её добавить.

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

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

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 тоже увидел новое окружение.

Чтобы активировать его вводим

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 изображение с сайта www.andreyolegovich.ru

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

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

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

servirtualenvproject

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

rmvirtualenv topbicycle.ru

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

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.

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: