venv中的pip版本不匹配

时间:2018-09-22 11:45:22

标签: python pip python-venv

我对虚拟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 个答案:

答案 0 :(得分:0)

pip仍然指向全局变量,即使处于虚拟状态。 python不使用,而是使用venv。

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