Как настроить и использовать виртуальную среду Python в Ubuntu?

Виртуальные среды Python используются для создания изолированных сред Python, чтобы избежать зависимости и конфликтов версий, а также косвенно заботиться о проблемах с разрешениями. Но как проще всего настроить и использовать его в Ubuntu?

74
задан 24 December 2016 в 07:58

4 ответа

С virtualenvwrapper (удобные для пользователя обертки для функциональности virtualenv)

Установка virtualenv

Установка virtualenv с

sudo apt install virtualenv

Установка virtualenvwrapper

Причина мы также устанавливаем virtualenvwrapper, состоит в том, потому что это предлагает хорошие и простые команды для управления виртуальными средами. Существует два способа установить virtualenvwrapper:

Как пакет Ubuntu (из Ubuntu 16.04)

Выполненный

sudo apt install virtualenvwrapper

затем выполненный

echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc

Используя зернышко

  1. Установка и/или зернышко обновления

    Зернышко установки для Python 2 с

    sudo apt install python-pip
    

    или для Python 3

    sudo apt install python3-pip
    

    (при использовании Python 3 Вы, возможно, должны использовать pip3 вместо 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

Приятного отдыха!


Благодаря автору этого сообщения в блоге.

99
ответ дан 24 December 2016 в 07:58

Виртуальные среды предлагают способ управления и изоляции зависимостей для каждого проекта. Более того, они также избегают всей ситуации sudo pip install, которая представляет угрозу безопасности, как я объяснил в https://askubuntu.com/a/802594/15003 . Официальная документация 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/ .

0
ответ дан 24 December 2016 в 07:58

С помощью модуля 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 будет использоваться виртуальная среда. ( Источник )

0
ответ дан 24 December 2016 в 07:58

Это просто, вы устанавливаете python-virtualenv . Затем вы можете создать virtualenv с помощью команды virtualenv. См. их документацию для получения дополнительной информации.

0
ответ дан 24 December 2016 в 07:58

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

Похожие вопросы: