使安装新的Python次要版本优于以前的版本

使安装新的Python次要版本优于以前的版本,python,installation,Python,Installation,我使用以下命令从CentOS 6上的源代码构建并安装了Python 2.7.8: ./configure --prefix /opt/Python27 --exec-prefix=/opt/Python27 make make install 现在2.7.9已经发布,我想更新我的安装。如果我将它解压缩到与前一个目录不同的目录中,并使用完全相同的命令安装它(即在前一个安装过程中),那么期望所有内容都能继续工作是否合理?实际上,您可能没问题,最坏的情况也没那么糟糕 我不确定Python 2.x是否

我使用以下命令从CentOS 6上的源代码构建并安装了Python 2.7.8:

./configure --prefix /opt/Python27 --exec-prefix=/opt/Python27
make
make install
现在2.7.9已经发布,我想更新我的安装。如果我将它解压缩到与前一个目录不同的目录中,并使用完全相同的命令安装它(即在前一个安装过程中),那么期望所有内容都能继续工作是否合理?

实际上,您可能没问题,最坏的情况也没那么糟糕

我不确定Python 2.x是否保证了微版本之间二进制API的稳定性。*但是,根据:

在一个维护分支中,唯一可以不引起争议的更改是错误修复。此外,维护分支的一般规则是,在兄弟次要版本(3.4.1、3.4.2等)之间的任何时候都不得破坏兼容性。对于这两条规则,只接受极少数例外情况,必须首先讨论

因此,从理论上讲,2.7.8和2.7.9之间可能会有一个破坏兼容性的版本,唯一能确定的方法是深入研究bug追踪器和python开发人员邮件列表,等等,看看讨论和接受它的地方。当然,他们可能总是搞砸了,在没有意识到的情况下做出突破性的改变。但实际上,第一次在历史上只发生过几次,第二次据我所知从未发生过

另一件可能导致问题的事情是对Python在上一次构建之间构建的必需或可选依赖项的重大更改。但这在实践中是相当罕见的。比如说,如果您自上次构建以来卸载了
zlib
,那么是的,这可能会破坏兼容性,但您不太可能做过类似的事情

那么,如果其中一个是真的,会发生什么呢?这仅仅意味着,您构建的任何二进制扩展或嵌入应用程序都需要重新构建

希望您一直在使用
pip
,在这种情况下,如果出现问题,获取站点包中所有扩展的列表并强制重新安装它们是很简单的(尽管运行可能需要一段时间)。如果您正在使用大量虚拟环境,则可能需要对所有虚拟环境执行相同的操作。至于嵌入,如果你不知道,你就不会去做(除非你已经用pyInstaller之类的东西构建了“半独立”的可执行文件,我怀疑你有)


所以,不太可怕。而且,请记住,这通常根本不是问题,这只是最坏的情况。

您想这样做的原因是什么?除非您需要跟踪程序中的任何错误或特定的错误修复,否则它不太可能为您购买任何东西。想想看,对于部署到许多系统,/可能是一个足够好的理由,作为确保它们都从一个正常工作的
pip
开始的好方法…