venv 中的 pip 版本不匹配

pip version mismatch in venv

我对虚拟 Python 环境的工作方式感到困惑(Python 3.6,使用 venv)。我设置了我的 venv,并在命令行中激活了它。我希望从那时起我所做的一切都使用虚拟环境中的 python 和 pip 命令(因为这些目录在激活时添加到 PATH)。

问题是,当我 运行 pip --version 在我的 venv 中时,它 returns 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)

所以这是怎么回事?为什么命令行命令的目标 pippython 不同?以及如何解决这个问题?

pip 仍然指向全局的,即使在 venv 中也是如此。 python,但是,不使用 venv。

这意味着当您 运行 pip --version 时,您将获得您的全球 pip 版本。当你 运行 python -m pip install --upgrade pip 时,你正在使用 python 的 venv 版本,它显然已经有最新的 pip。要确认这一点,您可以 运行 python -m pip --version 并且您应该获得最新版本作为输出。