pyenv не может найти / использовать pip (хотя найден pip3)

#python #pip #virtualenv

#python #pip #virtualenv

Вопрос:

Пытаюсь перейти с virtualenv на venv (python3). Также хотел бы использовать pyenv для управления несколькими версиями python 3.x на моем Mac.

Следуя этой статье, я установил pyenv , pyenv-virtualenv и pyenv-virtualenvwrapper через brew без проблем:

 brew install pyenv
brew install pyenv-virtualenv
brew install pyenv-virtualenvwrapper
  

Изменил мой .zsh_env.sh в ~/.config/zsh_env.sh вот так:

 export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace

eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
  

Установлены две версии Python:

 ➜  ~ pyenv versions
  system
  2.7.15
* 3.7.2 (set by /Users/ugur/.python-version)
  

Пытаюсь создать виртуальную среду, но получаю жалобу, которая pip отсутствует:

 ➜  ~ pyenv virtualenv 3.7.2 jupyter3
pyenv: pip: command not found

The `pip' command exists in these Python versions:
  2.7.15
  

Если я пытаюсь запустить pip в своем терминале, я получаю ту же ошибку:

 ➜  ~ pip
pyenv: pip: command not found

The `pip' command exists in these Python versions:
  2.7.15
  

pip3 кажется, установлен / замечен, хотя:

 ➜  ~ pip3

Usage:
  pip3 <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
... (omitted)
  

Как я могу использовать pyenv в сочетании с venv для управления средами и версиями python?

Редактировать

Пытался установить pip через pip3 вот так (безуспешно):

 ➜  ~ pip3 install pip
Requirement already satisfied: pip in ./.pyenv/versions/3.7.2/lib/python3.7/site-packages (18.1)
You are using pip version 18.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
➜  ~ pip install --upgrade pip
pyenv: pip: command not found

The `pip' command exists in these Python versions:
  2.7.15
  

Правка 2

Даже наложение псевдонимов на pip не помогло:

 ➜  ~ alias pip=pip3
➜  ~ pyenv virtualenv 3.7.2 jupyter3
pyenv: pip: command not found

The `pip' command exists in these Python versions:
  2.7.15
  

Ответ №1:

Вы можете просто создать подобную ссылку как таковую

 ln -s /usr/bin/pip3 /usr/bin/pip
  

Теперь вызов pip действительно будет pip3 .

Примечание: Это не сработает, если python был установлен с brew, поскольку каталог не является /usr/bin , как указано в комментарии ниже.

Комментарии:

1. это не сработает, если ваш python установлен через brew — питоны 3.8 и 3.9 brew имеют не pip, а скорее pip3, и не будут установлены в / usr / bin

2. Спасибо @tesch1, в какой каталог он устанавливается при использовании brew?