- 主题:Python: Please stop screwing over Linux distros
多流行算是流行?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.*
所以你还是纠结 py2.x 和 py3k 的事情嘛。这点破事都说了几十年了。
你试试用 py 3.0 写的程序能不能在 py 3.10 上面跑。如果不能跑,也可以去 python 官方报 bug.
py3k 这个黑点,感觉能被黑一百年。
【 在 eGust (十年) 的大作中提到: 】
: 多流行算是流行?go 算不算流行?还是只要没有 java 流行的都不算流行?
: 现在的问题是,在10年前的电脑上成功安装了 ruby 3.x,那么10年没更新的 1.x 本地工具大概率依然能跑。就算安装10年没维护的一个 gem,只要 gemspec 不是过于草率,也基本没问题。不需要特意装个 rbenv,然后同时安装 1.x、2.x、3.x。因为 ruby 的包管理早早就有了,而
--
FROM 125.78.67.*
哦,俺是说pip/setuptools/venv这一套的混乱程度,受async影响不大。
Python语言本身吗,这不是要支持异步么...就打补丁成这样了呗。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 标 题: Re: Python: Please stop screwing over Linux distros
: 发信站: 水木社区 (Wed Nov 17 16:50:17 2021), 站内
:
: 没有。在 async/await 之前的 python,还是可以的。虽然有 py2.x -> py3k 的阵痛,但总体来看,设计很自洽。各种语法糖很正交。
:
: 【 在 cat (tiki) 的大作中提到: 】
: : 这个赖不了async,之前也糟的一塌糊涂。
:
:
: --
: 灭绝人性啊
:
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 125.78.67.*]
--
FROM 202.120.58.*
个人用户角色区分没这么明显。
以前遇到pip安装的模块有时候需要编译,系统未必能支持。现在这个好像解决了。
还有apt-get安装的模块版本低,pip安装的依赖前者的模块要求版本高。。。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 标 题: Re: Python: Please stop screwing over Linux distros
: 发信站: 水木社区 (Wed Nov 17 17:02:32 2021), 站内
:
: 作为发行版和 python 的使用者。其实很简单的:
:
: 1. 系统的 python 模块是服务于系统的。目标用户是运维人员。
: 2. pip 搭配 virtualenv 才是给开发人员用的。
: 3. anaconda 是给科学计算的人用的。开发人员自觉请用 2
:
: 【 在 cat (tiki) 的大作中提到: 】
: : disco只打包Python和主流知名第三方模块。
: : 如果需要新版本的Python和新版本/新安装的第三方模块,就需要PIP这样的。
: : 如果需要隔离开,就需要virtualenv这样的。
: : ...................
:
: --
: 灭绝人性啊
:
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 125.78.67.*]
--
FROM 202.120.58.*
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.*
没那么简单,例如tensorflow这个怪胎,基本每个版本都绑定一个很新的python版本,你想用老的python版本跑新的tensorflow没戏,你想用新的python跑老的tensorflow也没戏,因为pip里根本就不提供老版本的tensorflow。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 所以你还是纠结 py2.x 和 py3k 的事情嘛。这点破事都说了几十年了。
: 你试试用 py 3.0 写的程序能不能在 py 3.10 上面跑。如果不能跑,也可以去 python 官方报 bug.
: py3k 这个黑点,感觉能被黑一百年。
: ...................
--
修改:RuralHunter FROM 116.232.50.*
FROM 116.232.50.*
Windows下搭工具链的最佳选择是Anaconda (Linux下无所谓但我也是用Miniconda保持体验一致)
python2: conda create --name py27 python=2.7
python3: conda create --name py310 python=3.10 -c conda-forge (刚查了下已经进主仓库了)
nodejs: conda install nodejs -c conda-forge
java: conda install openjdk -c conda-forge
ruby: conda install ruby -c conda-forge
mysql: conda install mysql-server -c conda-forge
...
(Python包我都是首选pip install,据说tensorflow之类用conda install更好)
--
修改:freesand FROM 39.187.235.*
FROM 39.187.235.*
google 向来如此,没法救了。
【 在 RuralHunter (渔父) 的大作中提到: 】
: 没那么简单,例如tensorflow这个怪胎,基本每个版本都绑定一个很新的python版本,你想用老的python版本跑新的tensorflow没戏,你想用新的python跑老的tensorflow也没戏,因为pip里根本就不提供老版本的tensorflow。
--
FROM 125.78.67.*
具体说一下?
但 python 确实在历史上存在一次 except xxx 不兼容的问题,以前允许抛出字符串,后来不允许了。那次修改影响很大,但那会儿 python 不火,也没人喷。
【 在 eGust (十年) 的大作中提到: 】
: py 3.9? 也搞过一次清理 deprecated,我记得也是一堆人升级之后开发环境就挂了。在流行的脚本语言里,也就 py 爱搞这种事儿。node 0.10 就 deprecated 的基础库函数,到现在都 v17 了还没删。
: 这种问题本来也是包管理能解决的。
--
FROM 125.78.67.*