我正在设置虚拟环境。我收到有关过时 pip (19.2) 的警告,因此我在全局 (macos) 系统上更新了 pip,sudo -H python3 -m pip install --upgrade pip
.它似乎奏效了,但是当我制作一个新的 venv 时,我仍然得到旧的 pip 版本。
% pip --version
pip 20.1 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)
% python3 -m pip --version
pip 20.1 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)
% rm -rf .venv # make sure
% python3 -m venv .venv
% . .venv/bin/activate
(.venv) % python3 -m pip --version
pip 19.2.3 from /Users/marvin/.venv/lib/python3.8/site-packages/pip (python 3.8)
(.venv) % pip --version
pip 19.2.3 from /Users/marvin/.venv/lib/python3.8/site-packages/pip (python 3.8)
旧版本来自哪里?
最佳答案
在任何新创建的 venv 中重新安装 Pip。 venv 的默认 pip 版本与 Python 版本相关联,并且完全独立于您可能在系统上安装的任何 pip 版本。旧版本来自 wheel file与标准库捆绑在一起 ensurepip
模块。即使没有可用的 Internet 连接,这也允许用户创建 venv,如 venv
docs提到:
Unless the
--without-pip
option is given,ensurepip
will be invoked to bootstrappip
into the virtual environment
您可以通过
ensurepip.version
查看捆绑的 pip 版本。 :>>> import ensurepip
>>> ensurepip.version()
'19.2.3'
Python 3.8.2 是 vendoring pip 19.2.3 and setuptools 41.2.0 ,与您所看到的相符。要使用最新的 pip 版本直接创建 venv,而不是使用旧的 pip 创建它们然后升级 pip 版本,请参阅此答案:
How to get “python -m venv” to directly install latest pip version
关于python - 为什么我的 venv 使用的 pip 版本与我安装的不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61553778/