- 主题:Python: Please stop screwing over Linux distros
Python: Please stop screwing over Linux distros
https://drewdevault.com/2021/11/16/Python-stop-screwing-distros-over.html
难得标题和连接都发出来了,就不尝试转内容了,自己去看吧
--
修改:eGust FROM 203.211.109.*
FROM 203.211.109.*
说句实话,个人感觉 py 在各种 distros 中盛行,完全是啥流行就跟啥风的短视结果
作为一个连包管理都统一不了,各个版本之间完全不保证语法和基础库兼容的语言,我是不太理解为啥会把它放在 distros 里。
py cli 工具就更神了,比如 aws-cli 干脆都把 py 给打包进去了。打个比方,比如很多人都认为 electron 是 gui 界的毒瘤,同理,py 根本就是 cli 界的毒瘤。
【 在 eGust (十年) 的大作中提到: 】
: Python: Please stop screwing over Linux distros
:
https://drewdevault.com/2021/11/16/Python-stop-screwing-distros-over.html: 难得标题和连接都发出来了,就不尝试转内容了,自己去看吧
: ...................
--
修改:eGust FROM 203.211.109.*
FROM 203.211.109.*
如果是单独的 service 倒是还好,cli 之类如果还要和其它应用交互的话,container 调用起来就麻烦太多了
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 一看这图我就笑了,现在大家都喜欢docker like方案嘛。
: 自己拉个sandbox用起来很爽就行了,谁管维护这背后蜘蛛网一样的复杂关系的死活。
: pip,anaconda,dist python等等也同理,每个都是一个package manage system,但每个都不足以覆盖所有的需求。我觉得这跟python没啥关系,所有足够流行的平台都一样要面对这个问题,没这个问题只不过是因为不够流行罢了。比如某powershell
: ...................
--
FROM 203.211.110.*
distros 的目的本来就不是针对开发者,而是一个“通常”的使用场景。
比如我是搞 ruby 开发的,那我装个 rbenv 来做 ruby 的版本管理那是再自然不过的事情。但对于搞 ios 开发的人来说,人家无非就是需要一个 cocoapods,那人家自然就没必要装 rbenv。
问题是我现在不是搞 py 开发的,机器上依然装了 pyenv 同时搞了两个版本
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 是的。本青作为在 linux 桌面开发 python 十年的用户,从来没觉得 python 有什么问题。那篇博文就是 python 菜鸟瞎说。
--
FROM 203.211.110.*
关键是 py 官方就不带包管理
比如 ruby 你装了自然就带 gem,node 自然就带 npm,官方提供的想不要都不行
【 在 freesand (freesand) 的大作中提到: 】
: 发行版打包的python默认不带pip是对的,正常用户不要理会这个python,另选个自己喜欢的工具就好
--
FROM 203.211.110.*
不知道,好多年没写过 py 了
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 你不知道 python 带 venv 就在标准库里面?
: 不过有些发行版会拆出来。或者 windows portable 版本就没有 venv 模块。
--
FROM 203.211.110.*
这不就是我说的么,同样是移动开发,ios 就是你自己去装 ruby,自己装 cocoapods。人家不会专门给你打包一个 ruby,因为用什么版本跑 gem install cocoapods 没影响。最近几年 macos 不自带 ruby 了,以前很多人直接就用系统自带的。
糟糕的兼容性和缺乏自带的包管理工具,在许多工具链中本来只是一个配角,对于新手来说比主角还麻烦。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 那是因为你还是个程序员。用了某些 python 相关的工具包。
: 如果你再仔细找找,你会发现有些 gdb 安装包,tortoisehg, android sdk 等等,都自带打包好的 python 解释器。
: 这只能说明 python 足够流行,没法说明什么。
: ...................
--
FROM 203.211.110.*
多流行算是流行?go 算不算流行?还是只要没有 java 流行的都不算流行?
现在的问题是,在10年前的电脑上成功安装了 ruby 3.x,那么10年没更新的 1.x 本地工具大概率依然能跑。就算安装10年没维护的一个 gem,只要 gemspec 不是过于草率,也基本没问题。不需要特意装个 rbenv,然后同时安装 1.x、2.x、3.x。因为 ruby 的包管理早早就有了,而且版本兼容性相当不错。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: ruby 这么方便,是因为 ruby 不流行啊。
: 如果足够流行的话,我用新版本做个 ruby 工具,使用了 ruby 的新语法,扔到 2010 年的 macos 上面跑,不还得打包带一个 ruby 环境扔到 xxx.App/MacOS/Contents 里面。
: linux python 的兼容性,最大的问题我看来源于 linux 发行版本身。在一个 linux 里面打包的 python 软件,在另外一个 linux 发行版里面不一定可以跑起来。。为什么呢,因为 glibc 不兼容啊。这不是 python 的问题。
: ...................
--
FROM 203.211.110.*
另外我说的不是作为胶水语言使用的场景,而是只是作为工具链中的一环
比如 node 链接 native 之前用的就是 node-gyp,然后除了需要跨平台的 c/c++ 工具链之外,还得依赖 py。不知道现在啥样了,之前一直都只有2.7。对于小白,尤其是 win 新手来说,这两样东西估计得难倒一大片。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: ruby 这么方便,是因为 ruby 不流行啊。
: 如果足够流行的话,我用新版本做个 ruby 工具,使用了 ruby 的新语法,扔到 2010 年的 macos 上面跑,不还得打包带一个 ruby 环境扔到 xxx.App/MacOS/Contents 里面。
: linux python 的兼容性,最大的问题我看来源于 linux 发行版本身。在一个 linux 里面打包的 python 软件,在另外一个 linux 发行版里面不一定可以跑起来。。为什么呢,因为 glibc 不兼容啊。这不是 python 的问题。
: ...................
--
FROM 203.211.110.*
py 3.9? 也搞过一次清理 deprecated,我记得也是一堆人升级之后开发环境就挂了。在流行的脚本语言里,也就 py 爱搞这种事儿。node 0.10 就 deprecated 的基础库函数,到现在都 v17 了还没删。
这种问题本来也是包管理能解决的。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 所以你还是纠结 py2.x 和 py3k 的事情嘛。这点破事都说了几十年了。
: 你试试用 py 3.0 写的程序能不能在 py 3.10 上面跑。如果不能跑,也可以去 python 官方报 bug.
: py3k 这个黑点,感觉能被黑一百年。
: ...................
--
修改:eGust FROM 203.211.110.*
FROM 203.211.110.*