首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Python的pip会在每个新的虚拟环境中重置为10.0.1版本?

为什么Python的pip会在每个新的虚拟环境中重置为10.0.1版本?
EN

Unix & Linux用户
提问于 2018-08-24 16:20:58
回答 1查看 2.9K关注 0票数 6

为什么每次我创建一个新的虚拟环境而不自动从我的全球18.0安装中克隆的时候,

的版本被重置为10.0.1?

每次我创建一个新的虚拟环境,我都会被告知我的pip已经过时了。我跑

代码语言:javascript
运行
复制
$ pip install --upgrade pip

并获得以下输出:

代码语言:javascript
运行
复制
Collecting pip
  Using cached https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 10.0.1
    Uninstalling pip-10.0.1:
      Successfully uninstalled pip-10.0.1
Successfully installed pip-18.0

在虚拟环境之外运行pip -V会返回

代码语言:javascript
运行
复制
pip 18.0 from /usr/lib/python3.7/site-packages/pip (python 3.7)

因此,只有在我创建一个新的虚拟环境时,才会创建过时的版本。

这是python虚拟环境模块的特性吗?

为了记录在案,我运行的创建新虚拟环境的命令是:

代码语言:javascript
运行
复制
$ python -m venv 

我通过运行

代码语言:javascript
运行
复制
$ pacman -S python python-pip

我在Arch中运行它,python -V的输出是Python 3.7.0

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-08-25 16:11:05

创建新的虚拟环境时不会重置pip。创建新的虚拟环境时,venv将在此环境中执行pipsetuptools的新安装。pip版本从何而来?当您运行python -m venv时,pip的安装由模块ensurepip负责,该模块引导一个新的pip安装。您可以检查与Python3.7捆绑的pip版本:

代码语言:javascript
运行
复制
$ python3 -c "import ensurepip; print(ensurepip.version())"
10.0.1

这不是您可以自己更新或修改的东西;模块是标准库的一部分。当Python3.7发布时,最新的pip版本为10.0.1,因此它被捆绑(相关问题)。版本18是稍后发布的。下一次,它可能会在下一个Python发行版(3.7.1)中更新。

替代方案:使用virtualenv

如果希望在新的虚拟环境中安装最新的pip,可以切换到virtualenv

代码语言:javascript
运行
复制
$ pip install --user virtualenv

或者使用pacman安装系统:

代码语言:javascript
运行
复制
$ pacman -S python-virtualenv

virtualenv比Python更新得更频繁,因此最新版本安装了最新的软件包。用法示例:

代码语言:javascript
运行
复制
$ virtualenv myenv --python=python3 --quiet
$ source myenv/bin/activate
(myenv) $ pip --version
pip 18.0 from /Users/hoefling/.virtualenvs/myenv/lib/python3.7/site-packages/pip (python 3.7)
票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/464671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档