Как настроить и использовать виртуальную среду 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

Используя пункт

  1. Установить и / или обновить пип

    Установите 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 включить.

  2. Установить virtualenvwrapper

    Потому что мы хотим избежать sudo pip мы устанавливаем virtualenvwrapper локально (по умолчанию под ~/.local) с:

    pip install --user virtualenvwrapper
    

    а также

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
    
  3. Источник 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 команда. Смотрите их документацию для получения дополнительной информации.

Другие вопросы по тегам