我正在设置虚拟环境。我收到有关过时点(19.2)的警告,因此我在全局sudo -H python3 -m pip install --upgrade pip
的我的(macos)系统上更新了点。似乎有效,但是当我制作新的venv时,我仍旧使用旧的点子版本。
% 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)
旧版本来自哪里?
答案 0 :(得分:4)
在新创建的venv中重新安装了pip。 venv的默认pip版本与 Python 版本相关联,并且完全独立于系统上可能安装的任何pip版本。旧版本来自与标准库wheel file模块捆绑在一起的ensurepip
。如venv
docs所述,这使用户即使没有可用的互联网连接也可以创建venv:
除非给出
--without-pip
选项,否则将调用ensurepip
将pip
引导到虚拟环境中
您可以使用ensurepip.version
检查捆绑的点子版本:
>>> import ensurepip
>>> ensurepip.version()
'19.2.3'
Python 3.8是currently 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