我是Java
开发人员,拥有超过10年的经验。
几个月前,当我需要创建一个从REST服务中提取数据然后使用此数据生成报告的脚本时,我开始使用python
。 python
是一种多用途语言(脚本,Web应用程序,REST服务等)以及非常快的开发速度这一事实引起了我对该语言的浓厚兴趣。事实上,这是我在Linux
世界时使用的唯一语言。
目前,我正在尝试移植我的(powershell/shell)
自动化脚本,这些脚本是为了将Piston(一种基于开源Java的微型门户技术)的发布过程完全自动化而开发的,python
。然而,摆在我面前的一个主要挑战是我应该使用python
的哪个版本(2或3)?理想情况下我更喜欢3,因为我相信这比版本2有许多改进,我想使用所有新开发的这个版本。但是我担心的是可能有一些软件包可能不是python 3的版本。这也是python.org网站上提到的 -
但是,有些关键问题可能需要您使用Python 2而不是Python 3。
首先,如果您要部署到您无法控制的环境,可能会强制使用特定版本,而不是允许您从可用版本中自由选择。 其次,如果您想使用尚未发布与Python 3兼容的已发布版本的特定第三方软件包或实用程序,并且移植该软件包是一项非常重要的任务,您可以选择使用Python 2为了保留对该包的访问权限。
一个尚不支持Python 3的流行模块是Twisted(用于网络和其他应用程序)。大多数积极维护的图书馆都有人在开展3.x支持。对于某些库来说,它比其他库更重要:例如,Twisted主要关注生产服务器,支持旧版本的Python很重要,更不用说支持包含语言重大更改的新版本了。 。 (Twisted是一个主要包的主要示例,其中移植到3.x远非微不足道。)
因此,我不希望遇到这样的情况:我认为这个程序包对我的自动化脚本非常有用,但没有python
3的版本。
答案 0 :(得分:1)
使用python 3.不支持python 3的软件包数量每天都在缩减,绝大多数大型/重要框架已经支持这两者。甚至有些项目完全放弃了python 2,虽然这些项目往往不会很大(因为企业惯性倾向于让项目恢复)。
今天在python 2上开始一个新项目,特别是作为一个初学者,只是让自己更痛苦,而不是遇到一个不支持python 3的软件包。
考虑到python的多功能性和充满活力的python社区的大小,通常有多个软件包可以解决同样的问题。这意味着即使你找到一个不支持python 3的项目,通常也可以找到一个支持python 3的类似项目。一旦你有足够的信心w / python 3,并且你遇到了只支持python 2的软件包,你总是拥有源代码并且可以开始贡献补丁了! :d
答案 1 :(得分:0)
我会邀请你从Python 3开始。几乎你在3中编写的所有内容都可以写成2,但不是相反,大多数软件包现在支持3,而你将拥有Python中的其他软件可能没有(例如async io)。 Python 3还解决了以前版本的文本和二进制数据问题(阅读更多here)。
答案 2 :(得分:0)
Python 2 will be retired in January 2020(另请参见this pull request),因此向Python 3迁移特别重要。