Как настроить и использовать виртуальную среду Python в Ubuntu?
Виртуальные среды Python используются для создания изолированных сред Python, чтобы избежать конфликтов зависимостей и версий, а также косвенно решать проблемы с разрешениями. Но как проще всего настроить и использовать его в Ubuntu?
4 ответа
С virtualenvwrapper
(удобные обертки для функциональности virtualenv
)
Установить virtualenv
устанавливать virtualenv
с
sudo apt-get install virtualenv
(для Ubuntu 14.04 (верный) установить python-virtualenv
)
Установить virtualenvwrapper
Причина, по которой мы также устанавливаем virtualenvwrapper, заключается в том, что он предлагает удобные и простые команды для управления виртуальными средами. Есть два способа установки virtualenvwrapper
:
Как пакет Ubuntu (из Ubuntu 16.04)
Бежать
sudo apt install virtualenvwrapper
тогда беги
echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc
Используя пункт
Установить и / или обновить пип
Установите pip для Python 2 с
sudo apt-get install python-pip
или для Python 3
sudo apt-get install python3-pip
(если вы используете Python 3, вам может понадобиться
pip3
вместоpip
в остальной части этого руководства).Необязательно (но рекомендуется): включите автозаполнение bash для pip
Бежать
pip completion --bash >> ~/.bashrc
и беги
source ~/.bashrc
включить.Установить virtualenvwrapper
Потому что мы хотим избежать
sudo pip
мы устанавливаемvirtualenvwrapper
локально (по умолчанию под~/.local
) с:pip install --user virtualenvwrapper
а также
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
Источник virtualenvwrapper в
.bashrc
echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
Настройка virtualenv и virtualenvwrapper:
Сначала мы экспортируем WORKON_HOME
переменная, которая содержит каталог, в котором должны храниться наши виртуальные среды. Давайте сделаем это ~/.virtualenvs
export WORKON_HOME=~/.virtualenvs
Теперь также создайте этот каталог
mkdir $WORKON_HOME
и положить этот экспорт в нашем ~/.bashrc
файл, так что эта переменная определяется автоматически
echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc
Мы также можем добавить некоторые дополнительные приемы, такие как следующие, что гарантирует, что если pip
создает дополнительную виртуальную среду, она также размещается в нашем WORKON_HOME
каталог:
echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc
Исходный код ~/.bashrc для загрузки изменений
source ~/.bashrc
Проверьте, работает ли это
Теперь мы создаем нашу первую виртуальную среду. -p
Аргумент необязательный, он используется для установки используемой версии Python; это также может быть python3
например.
mkvirtualenv -p python2.7 test
Вы увидите, что среда будет настроена, и ваше приглашение теперь включает в себя имя вашей активной среды в скобках. Также, если вы сейчас бежите
python -c "import sys; print sys.path"
вы должны увидеть много /home/user/.virtualenv/...
потому что теперь он не использует ваши системные пакеты сайта.
Вы можете отключить свою среду, запустив
deactivate
и если вы хотите работать над этим снова, просто введите
workon test
Наконец, если вы хотите удалить свою среду, введите
rmvirtualenv test
Наслаждайтесь!
Спасибо автору этого поста.
Виртуальные среды предлагают способ управления и изоляции зависимостей для каждого проекта. Более того, они также избегают целого sudo pip install
ситуация, которая представляет собой угрозу безопасности, как я объяснил в /questions/561405/yavlyaetsya-li-sudo-pip-install-vse-esche-slomannoj-praktikoj/561420#561420. Официальная документация Python также поощряет использование виртуальных сред.
Самый простой способ создания и использования виртуальных сред для Python 2 и Python 3 - это установить virtualenv
с помощью apt
или же apt-get
, Для каждого проекта Python создайте virtualenv, а затем активируйте его. Обратите внимание, что virtualenv специфичен для конкретной версии Python. После активации используйте pip
устанавливать пакеты Python как обычно, независимо от того, используете ли вы Python 2 или 3; нет необходимости использовать pip3
для Python 3. sudo
используется только для установки virtualenv
и не используется с pip
, следовательно, избегая вышеупомянутого риска безопасности. Команды для этого:
sudo apt update
sudo apt install virtualenv
cd ~/desired_directory # cd to desired_directory
virtualenv venv # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate # activate virtualenv
pip install -U pip # upgrade pip in case it is outdated
pip install desired_package # install desired_package
Если вы хотите создать virtualenv для Python 3, замените virtualenv venv
с:
virtualenv venv -p python3
Узнайте больше о различных прибамбасах для virtualenv
на https://virtualenv.pypa.io/en/stable/.
С модулем venv, доступным в Python 3.3 (и Ubuntu 15.10)
Виртуальные среды (venvs) настолько популярны, что функциональность теперь включена в сам Python (начиная с версии 3.3). Чтобы использовать его в Ubuntu, вам нужно установить python3-venv
(так как ensurepip
модуль недоступен):
sudo apt-get install python3-venv
После этого вы можете использовать
pyvenv myvirtualenv
создать виртуальную среду под названием myvirtualenv
, Вы можете использовать
source myvirtualenv/bin/activate
активировать виртуальную среду. Для деактивации просто наберите
deactivate
РЕДАКТИРОВАТЬ: pyvenv
Сценарий устарел в пользу python3 -m venv
, Это предотвращает путаницу относительно того, что интерпретатор Python pyvenv
и, следовательно, какой интерпретатор Python будет использоваться виртуальной средой. ( источник)
Это просто, вы устанавливаете http://apt.ubuntu.com/p/python-virtualenv. Тогда вы можете создать virtualenv с virtualenv
команда. Смотрите их документацию для получения дополнительной информации.