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)
所以这是怎么回事?为什么命令行命令的目标 pip
与 python
不同?以及如何解决这个问题?
pip
仍然指向全局的,即使在 venv 中也是如此。 python
,但是,不使用 venv。
这意味着当您 运行 pip --version
时,您将获得您的全球 pip 版本。当你 运行 python -m pip install --upgrade pip
时,你正在使用 python 的 venv 版本,它显然已经有最新的 pip。要确认这一点,您可以 运行 python -m pip --version
并且您应该获得最新版本作为输出。
我对虚拟 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)
所以这是怎么回事?为什么命令行命令的目标 pip
与 python
不同?以及如何解决这个问题?
pip
仍然指向全局的,即使在 venv 中也是如此。 python
,但是,不使用 venv。
这意味着当您 运行 pip --version
时,您将获得您的全球 pip 版本。当你 运行 python -m pip install --upgrade pip
时,你正在使用 python 的 venv 版本,它显然已经有最新的 pip。要确认这一点,您可以 运行 python -m pip --version
并且您应该获得最新版本作为输出。