Как я могу сделать хук post virtualenv в pyenv для обновления пакетов pip - PullRequest
0 голосов
/ 13 января 2019

Я использую pyenv для управления различными версиями Python на моей машине и pyenv-virtualenv для управления моими venvs. Когда я создаю новый venv с чем-то вроде pyenv virtualenv foo, он не устанавливает последнюю версию pip, setuptools и wheel в venv. Я хотел бы запустить pip install --upgrade pip setuptools wheel внутри каждого венва после того, как он был создан.

pyenv имеет концепцию хуков для до и после команды. Я могу запустить эту команду, добавив следующий файл

~/.pyenv/plugins/pyenv-virtualenv/etc/pyenv.d/virtualenv/after.bash

со следующим содержанием

after_virtualenv 'pip install --upgrade pip setuptools wheel'

Команда запускается, но она не запускается внутри venv, поэтому она просто использует текущий pip. Как я могу вызвать эту команду внутри venv в хуке after_virtualenv?

1 Ответ

0 голосов
/ 11 февраля 2019

Хорошо, я понял, что вы можете просто указать только что созданное имя virtualenv как PYENV_VERSION и вызвать pyenv-exec.

upgrade_packages() {
  PYENV_VERSION=$VIRTUALENV_NAME pyenv-exec pip install --upgrade pip setuptools wheel
}

after_virtualenv 'upgrade_packages'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...