我使用以下命令从CentOS 6上的源代码构建并安装了Python 2.7.8:
./configure --prefix /opt/Python27 --exec-prefix=/opt/Python27
make
make install
现在2.7.9已经出来了,我想更新我的安装。如果我在与前一个目录不同的目录中解压缩并且使用完全相同的命令(即在之前的安装中)安装它,那么期望一切都能继续工作是否合理?
答案 0 :(得分:2)
在实践中,你可能确定,最糟糕的情况并不是那么糟糕。
我不确定Python 2.x是否能保证微版本之间的二进制API稳定性。*但是,根据the dev guide:
允许在没有争议的情况下在维护分支中发生的唯一更改是错误修复。此外,维护分支的一般规则是不得在兄弟小版本(3.4.1,3.4.2等)之间的任何点上破坏兼容性。对于这两个规则,只接受罕见的例外,必须先讨论。
因此,从理论上讲,2.7.8和2.7.9之间可能存在兼容性破坏版本,唯一可以确定的方法是挖掘bug跟踪器和python-dev邮件列表等等。看看它被讨论和接受的地方。当然,他们总是可以搞砸并在没有意识到的情况下进行彻底改变。但在实践中,第一次只发生过几次历史,第二种情况据我所知从未发生过。
另一个可能导致问题的是对Python在上一次构建之间构建的必需或可选依赖项的重大更改。但这在实践中非常罕见。如果你自上次构建以来已经卸载zlib
,那么是的,这可能会破坏兼容性,但是你不太可能做过这样的事情。
那么,如果其中任何一个属实,会发生什么?它只是意味着您构建的任何二进制扩展或嵌入应用程序都需要重建。
希望你一直在使用pip
,在这种情况下,如果出现问题,获取网站包中所有扩展名的列表并强制重新安装它们是微不足道的(虽然可能需要一段时间跑步)。如果您使用了大量虚拟环境,则可能需要为所有虚拟环境执行相同的操作。至于嵌入,如果你不知道它,你就不会这样做(除非你用pyInstaller构建了“半独立”可执行文件,我怀疑你有)。
所以,不要太可怕。而且,请记住,这通常不是问题,只是最糟糕的情况。