关于 Linux 系统自带的 python2.7 为啥不更换成 python3 的疑惑

2019-07-11 17:41:15 +08:00
 Hopetree

目前发行的 linux 系统自带的 Python 都是 2.7 的版本(我直说常用的几个版本,据我所了解的),用 Python 的人都知道 Python2 和 Python3 有很多不一样的语法还有内置库,有的人还笑称这是两个不同的语言,正因为这个,所以在编写自动化脚本的时候,如果脚本是要在服务器上面执行(非虚拟环境),那么一定要兼容 Python2.

据我所知,python2 作为 linux 内置的,所以很多其他软件对这个有依赖,所以一般服务器上面也不会把 Python2 升级成 Python3,而是单独下载 Python3 使用。

重点:基于上述的现状,似乎说明 Python2 是不能够短时间被遗弃,这两个版本还是长期并存。但是我发现容器的 Python 镜像有不同版本的 linux 系统,比如 Ubuntu,centos,都是 Python3 作为基础 Python 版本,而非 Python2,所以问题来了:既然在容器里面可以丢掉 python2,为什么发行版的 linux 不可以(或者说没有这样做)?

8084 次点击
所在节点    Python
38 条回复
nekoyaki
2019-07-11 17:45:02 +08:00
容器历史包袱小,依赖少。一般正经的用法,一个容器只会干一件事儿,也不会让用户去容器里改太多东西或者部署什么东西,出了问题是容器制作者的问题。
但操作系统肯定不能这么做限制
lolizeppelin
2019-07-11 17:56:42 +08:00
因为你只看到 python 没升级
长期支持版系统基础组件连小版本都不升级,只更新非常微小的 bug 修复版

glibc gcc 什么的没一个升级的,python 升不了级因为 python 是系统的基础组件

linux 系统不怎么和 java 打交道,随便升...老早就提供多版本并存工具,想用什么版用什么版

1~2 年内红帽 8 普及,如果你们系统不考虑低级系统支持,可以抛弃 python2 了
WingOnSummit
2019-07-11 17:58:06 +08:00
centos7 开始好像就是 python3 了。ubuntu 现在的版本默认也是 3,以前用的一个版本,14 还是 16 来着,默认是 2,但是有 3,改下 link 文件就行。
crella
2019-07-11 18:01:44 +08:00
perl6 脚本用 use v6;就可以解决问题
lihongjie0209
2019-07-11 18:05:13 +08:00
你把系统自带的 python 卸载掉就知道为什么不能升级了
qq976739120
2019-07-11 18:07:00 +08:00
很多乱七八糟的东西安装,都依赖 python2 的
chaleaochexist
2019-07-11 18:08:55 +08:00
@lihongjie0209 你真坏.
blueskea
2019-07-11 18:10:50 +08:00
有些发行版 python2,3 都装了,只不过 python 命令还是链接到了 python2 上
ChillyPrince
2019-07-11 18:11:37 +08:00
上面除了 1 楼好像就没人看完正文的……人家明明纠结的是容器为啥能扔掉 python2
Jirajine
2019-07-11 18:11:42 +08:00
Arch 系够新吧,还没丢掉 Python2 呢。虽然一直在说要舍弃旧包。
BingoXuan
2019-07-11 18:16:51 +08:00
macos 的 vim 还停留在 7.4 的版本。版本旧大多都是遗留问题。工程学经验告诉我们,如果一个东西没有坏,那就不要去动它
skiy
2019-07-11 18:34:48 +08:00
py3 在新发行版好像已经开始替换了
BruceAuyeung
2019-07-11 18:40:18 +08:00
容器里的 os 都是精简过的,定位上也不是做大而全的系统,有它自己的目标市场,不能说容器里能丢掉那普通发行版也能丢掉,现象的本质不是能不能,而是应不应该
janxin
2019-07-11 18:59:09 +08:00
历史包袱,不一定非得兼容 python2,未来都会是 python3 默认,目前已有一部分最新版是默认 Python3 了。

但是问题是 Linux 装一些软件的时候会把 Python2 再装回来...
mainlong
2019-07-11 19:31:36 +08:00
Ubuntu18.04 是 python3 的,但是我安装其他软件就把 python2.7 也顺带着安装了
mattx
2019-07-11 19:31:54 +08:00
debian 10 就是 3 了
Humorce
2019-07-11 19:38:31 +08:00
pip list -v
看看就明白了。

Ubuntu 18.04 内置的是 Python 3.6.8
Tink
2019-07-11 19:42:24 +08:00
有些版本升级了
wlh233
2019-07-11 20:19:14 +08:00
就跟 32 位 和 64 位 一样,需要一个过程,每个发行版理念不同反应快慢不一样
Archlinux 在 2010 年就默认 python3 了
https://www.archlinux.org/news/python-is-now-python-3/
reus
2019-07-11 20:26:54 +08:00
有依赖 python2 的,你就要提供 python2
容器不依赖 python2,就可以不提供 python2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582104

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX