我拥有多年来使用Python 3开发的软件。直到今天,我一直在使用Ubuntu Desktop 11.04,但现在我想移至更高版本的Ubuntu。
我是否必须继续使用Ubuntu 11.04,以便由于更高版本的Ubuntu中的新更改而不必更改软件的部分源代码?
最近的Ubuntu版本不会以任何方式影响我的软件吗?
我拥有多年来使用Python 3开发的软件。直到今天,我一直在使用Ubuntu Desktop 11.04,但现在我想移至更高版本的Ubuntu。
我是否必须继续使用Ubuntu 11.04,以便由于更高版本的Ubuntu中的新更改而不必更改软件的部分源代码?
最近的Ubuntu版本不会以任何方式影响我的软件吗?
Answers:
根据您的评论,您成功在VM上测试了软件,这是个好消息。
但是,作为应用程序开发人员,您必须准备使您的代码适应最新版本,否则它将很快被放弃。
现在,要确保它可以继续与Ubuntu的新版本一起使用,我强烈建议您将其作为软件包进行维护,并为您的应用程序提供完整的测试套件,并在软件包的构建过程中对其进行调用(例如,通过setup.py test
在您的debian/rules
override_dh_auto_test
部分中进行调用))。
您可以使用bzr-builder 配方在ppa中轻松设置每日构建的软件包。这样,您将收到由新软件版本或依赖项损坏导致的所有构建失败的通知。
通常,在正式发布公告后的几天内,就会开放新版本供开发。看一下我们的ppa页面,Utopic现在是我们要为其构建的发行版系列的一部分:
不,您不应该停留在11.04。自2012年10月起,它就已经终止支持。如果您需要任何支持,则至少需要升级到12.04(将再获得三年支持)。
而且,即使是较新版本的Ubuntu,默认情况下也包括Python 3.x,目的是从默认安装中完全删除Python2.x。
您可能会在较新版本的Python 3.x下运行代码时遇到问题,但通常应该没有问题。无论您使用的是哪个版本的Ubuntu,作为开发人员,您都应准备好应对任何此类问题。您正在使用的任何库,或者Python本身,都可能存在一个错误,您的代码在行为上取决于该错误,如果该错误已得到修复,则可能导致程序的行为与以前的预期有所不同。
很难给出明确的答案,而无需描述您的应用程序。由于您使用的是Python3,至少您不受Python2.x分支的限制(不会有Python 2.8)。
现在,对于Python3,可能会出现一些警告,可能会不适用于您的应用程序,因为不推荐使用GLib / GObject / GIO / GTK +来访问GLib / GObject / GIO / GTK +的最佳方法是使用Python GObject Introspection(又名PyGI)。
最后,不同的python3版本之间仍然存在一些细微的差异(例如Argparse在python 3.2和3.3中的行为并不完全相同。
您可以尝试的一件事是引导14.04 VM并使用python3.4测试代码。
sudo apt-get install python3
)测试您的应用程序。您还可以查看python3.2 的发行说明,但据我所知python3.2只是对3.1.x分支的大量改进(argparse是其中之一)
它取决于您的代码。如果您的代码使用了不受支持的库,则无法轻松迁移到较新版本的操作系统,但是在大多数情况下都不会发生问题。
如果需要在Ubuntu 14.04上运行旧版本的Python,请启用Deadsnakes存储库。它具有适用于Ubuntu 14.04的Python版本2.3、2.4、2.5、2.6、3.1、3.2、3.3。如果您的应用程序是纯Python代码,并且不依赖于其他进程的行为,那么它应该可以在旧的解释器上正常运行。