несоответствие версии пипа в venv

1

Я смущен тем, как работают виртуальные среды Python (Python 3.6, используя venv). Я настроил свой venv и активировал его в командной строке. Я бы ожидал, что все, что я делаю с этого момента, использует команды python и pip из виртуальной среды (так как эти каталоги добавляются в PATH при активации).

Дело в том, что когда я запускаю pip --version в моем venv, он возвращает pip 10.0.1. Но когда я пытаюсь обновить его с помощью python -m pip install --upgrade pip, я получаю Requirement already up-to-date

(venv) PS C:\Python\files\myproj> pip --version
> pip 10.0.1 from c:\python\files\myproj\venv\lib\site-packages\pip-10.0.1-py3.6.egg\pip (python 3.6)
(venv) PS C:\Python\files\myproj> python -m pip install --upgrade pip
> Requirement already up-to-date: pip in c:\python\files\myproj\venv\lib\site-packages (18.0)

Итак, что происходит? Почему команда командной строки не таргетирует тот же pip что и python? И как исправить это?

  • 1
    pip указывают на другую версию pip, отличную от той, что в вашем venv. python -m pip использует версию в вашем venv.
  • 0
    Так что, когда в активном venv , версия пипс является глобальной? И только глобальный python обменивается на питона венва?
Показать ещё 4 комментария
Теги:
pip
python-venv

1 ответ

0
Лучший ответ

pip все еще указывает на глобальную, даже когда в Вене. python, однако, не использует и использует venv.

Это означает, что при запуске pip --version вы получаете свою глобальную версию pip. когда вы запускаете python -m pip install --upgrade pip, вы используете версию pivon venv, у которой, по-видимому, уже есть новейший пип. Чтобы подтвердить это, вы можете запустить python -m pip --version и вы должны получить последнюю версию в качестве вывода.

  • 0
    НО почему тогда, когда я использую pip install a-package в активированной среде, пакет устанавливается в среде, а не глобально?
  • 0
    эй, @BramVanroy, почему ты не принял мой ответ? то, что вы спросили в комментариях, это еще один вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню