如果我升级 Ubuntu,我是否应该更改我的 Python 代码?

如果我升级 Ubuntu,我是否应该更改我的 Python 代码?

我有一个使用 Python 3 开发多年的软件。直到今天,我一直在使用 Ubuntu Desktop 11.04,但现在我想迁移到更高版本的 Ubuntu。

我是否必须继续使用 Ubuntu 11.04,这样我就不会因为 Ubuntu 更高版本中的新变化而更改软件的部分源代码?

最近的 Ubuntu 版本不会对我的软件产生任何影响吗?

答案1

不,你不应该继续使用 11.04。自 2012 年 10 月以来,它已不再提供支持。如果你需要任何支持,你需要升级,至少升级到 12.04(将支持更多的年份)。

此外,即使是较新版本的 Ubuntu 也默认包含 Python 3.x,目标是从默认安装中完全删除 Python 2.x。

可能在较新版本的 Python 3.x 下运行代码时可能会出现问题,但一般情况下应该不会出现问题。作为开发人员,您还应该准备好处理任何此类问题,无论您使用的是哪个版本的 Ubuntu。您使用的任何库或 Python 本身都可能存在您的代码在行为上依赖的错误,如果该错误得到修复,可能会导致您的程序的行为与您之前预期的不同。

答案2

如果没有应用程序描述,很难给出明确的答案。由于您使用的是 Python3,因此至少您不受 Python2.x 分支的限制(不会有 Python 2.8)。

现在有一些可能适用于你的应用程序的警告,Python3 中的许多软件包现在已被弃用,因为访问 GLib/GObject/GIO/GTK+ 的最佳方式是使用Python GObject 自省(又名 PyGI)。

最后,不同的 python3 版本之间仍然存在一些细微的差别(例如,Argparse 与 python 3.2 和 3.3 的行为并不完全相同)。

您可以尝试的一件事是启动 14.04 VM 并使用 python3.4 测试您的代码。

答案3

根据您的评论,您已成功在虚拟机上测试了您的软件,这是一个好消息。

但作为应用程序开发人员,您必须准备好使您的代码适应较新的版本,否则它将很快被放弃。

现在,为了确保它能继续与 Ubuntu 的新版本兼容,我强烈建议您将它作为一个包进行维护,并为您的应用程序提供完整的测试套件,并在包的构建过程中调用它(例如通过setup.py test在您的debian/rules override_dh_auto_test部分中调用)。

您可以轻松设置每日构建使用 bzr-builder 将软件包放入 ppa 中食谱这样,您将收到由新软件版本或损坏的依赖项导致的所有构建失败的通知。

新版本通常在正式发布公告几天后开放开发。请查看我们的苯甲酸页,乌托邦现在是我们正在构建的发行版系列的一部分:

在此处输入图片描述

答案4

Ubuntu 14.04 有 python3 包,所以这不是问题。apt-cache search python3我会向你展示它们。除此之外,你还必须阅读 11.04 和“更高版本”之间每个 Ubuntu 版本的发行说明,并搜索会破坏你的应用程序的更改。我对你的开发一无所知,我不得不大声喊 YMMV,但我猜你不会遇到无法克服的问题。

相关内容