我对虚拟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
为目标的命令行命令?以及如何补救呢?
答案 0 :(得分:0)
pip
仍然指向全局变量,即使处于虚拟状态。 python
不使用,而是使用venv。
这意味着当您运行pip --version
时,将获得全局pip版本。当您运行python -m pip install --upgrade pip
时,您使用的是venv版本的python,它显然已经具有最新的pip。要确认这一点,您可以运行python -m pip --version
,并且应该获得最新版本作为输出。