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

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

С 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

Использование pip

  1. Установите и/или обновите pip

    Установите pip для Python 2 с помощью

    sudo apt install python-pip

    или для Python 3

    sudo apt 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 ситуация, которая представляет собой угрозу безопасности, как я объяснил в 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 updatesudo apt install virtualenvcd ~/desired_directory  # cd to desired_directoryvirtualenv venv  # create virtualenv named venv for default system Python, which is Python 2 for Ubuntusource venv/bin/activate  # activate virtualenvpip install -U pip  # upgrade pip in case it is outdatedpip install desired_package  # install desired_package

Если вы хотите создать virtualenv для Python 3, замените virtualenv venv с:

virtualenv venv -p python3

Узнайте больше о различных прибамбасах и прибамбасах для virtualenv около https://virtualenv.pypa.io/en/stable/.

Это просто, вы устанавливаете python-virtualenv. Затем вы можете создать virtualenv с помощью virtualenv команда. Видеть их документация для большего.

С модуль venv доступно с Python 3.3 (и Ubuntu 15.10)

Виртуальные среды (VENV) настолько популярны, что теперь эта функциональность включена в сам 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 будет использоваться виртуальной средой. (источник)