最新的不等于最好的--从segmentation fault说开去

最近在本地 PC 的 Windows Subsystem for Linux (WSL) 上跑 Python 代码,程序在使用 hydra 的时候出现了 segmentation fault 错误。Google 可知这个错误发生在 Python 调用 C 语言代码的时候,属于比较底层的问题。由于之前在服务器上都没有发生过这个故障,加上 StackOverflow 上有人发帖反映也是在使用 Ubuntu 22.04 时出现这个问题,有没有可能是 Ubuntu 22.04 系统本身的 bug 呢?果然,重新安装了 Ubuntu 20.04 后,问题解决。

说到这里,有必要指出,在 Python 和 Linux 界,最新的软件包并不一定是最好的——这和装机界、手机界的情况有很大区别。

一方面,负责开发 Linux 发行版的团队构成互不相同,而它本身也不是一个盈利的项目,这些年来围绕开发产生的各种狗血剧情也是数不胜数,这势必造成版本的质量控制无法同 Windows 相比,指望他们对用户负责只能呵呵呵。
另一方面,Python 的各种包更新很快,有时新版包会移除旧版包里的一些函数,而这些函数有可能被其他包所调用。这就造成了即使按照 environment.yml 来配置环境,如果作者没有细致地写清每一个包的版本,那么由于时间推移,就有可能导致一些包被自动安装了与其他包冲突的最新版,从而使得代码无法运行。这时,通过观察故障包的名称,安装相应的旧版可能会解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值