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
После того как Вы добавили системную переменную, возможно придётся перезагрузить компьютер.
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) &h3llip; 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
После того как Вы добавили системную переменную, возможно придётся перезагрузить компьютер.
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.
virtualenv | |
Установка virtualenv | |
Применение virtualenv | |
freeze | |
virtualenvwrapper | |
Виртуальное окружение | |
Python | |
Anaconda | |
pyenv | |
venv |