我正在设置虚拟环境。我收到有关过时 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)
旧版本从哪里来?
Pip 会在任何新创建的 venv 中重新安装。 venv 的默认 pip 版本与Python版本,并且完全独立于您在系统上安装的任何 pip 版本。旧版本来自轮锉 https://pythonwheels.com/与 stdlib 捆绑在一起ensurepip https://docs.python.org/3/library/ensurepip.html#module-ensurepip模块。这允许用户即使没有可用的互联网连接也可以创建 venv,因为venv docs https://docs.python.org/3/library/venv.html提到:
除非--without-pip
给出了选项,ensurepip
将被调用以引导pip
进入虚拟环境
您可以使用以下命令检查捆绑的 pip 版本ensurepip.version https://docs.python.org/3/library/ensurepip.html#ensurepip.version:
>>> import ensurepip
>>> ensurepip.version()
'19.2.3'
Python 3.8.2 是供应 pip 19.2.3 和 setuptools 41.2.0 https://github.com/python/cpython/tree/v3.8.2/Lib/ensurepip/_bundled,与您所看到的相符。
要直接使用最新的 pip 版本创建 venv,而不是使用较旧的 pip 创建它们然后升级 pip 版本,请参考此答案:
如何让“python -m venv”直接安装最新的pip版本 https://stackoverflow.com/a/60217751/674039
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)