【问题标题】:What versions of Python are in current use, and packages should support?当前使用的 Python 版本有哪些,哪些包应该支持?
【发布时间】:2011-08-05 23:48:50
【问题描述】:

作为一名小型 Python 包编写者(cobssimplerandom),我想知道我应该支持哪些 Python 版本。

我听说 Python 2.5 仍在企业类型的服务器上使用。所以我认为 2.5 是需要实际支持的最古老的版本,这里是 2011 年。

但是,我看到this blog,其中作者说他仍在使用 2.4。根据记忆,我在 PyCrypto 邮件列表上看到一封电子邮件,说他们的目标是尽可能将支持恢复到 2.2。

当然,还有 Python 3.x,它正在慢慢获得动力。最好知道谁在使用它。

然后,还有 Jython 和 Ironpython,我对它们知之甚少。

是否有任何具体且最新的 Python 安装/使用数据可以启发我们?对于包编写者应该支持哪些版本/风格的 Python,是否有任何“最佳实践”或其他建议?

【问题讨论】:

    标签: python python-3.x version


    【解决方案1】:

    我认为这是开发任何软件时固有的问题。任何人都可以运行任何版本,并且需要对该版本的支持(我想知道有多少人仍在运行 Windoze ME?;))。就个人而言,在开发库的时候,我会支持只支持当前版本+。如果没有其他原因,因为我只是一个人,我没有团队。

    话虽如此,我会把我的包贴在 github 上,并从任何想要支持以前版本(并且愿意投入工作)的人那里获取补丁。

    编辑:

    我发现软件开发(尤其是软件包)的一个好的规则是只为需要的东西开发,而不是你认为可能需要的东西。换句话说,让它适用于你正在运行的任何版本的 Python(或对你来说最重要的),然后如果你想在人们需要时自己实现它们,请提出支持请求。

    【讨论】:

    • 感谢您的积分。回应我对另一个答案的评论......至于“需要”,我猜这些包不会很受欢迎,但我试图猜测[可能沉默的]潜在用户的“需要” .
    • 可以理解(收集需求)。但是,为什么在开始之前就增加您的工作量并扩大您的包装范围呢?恕我直言,最好有一个非常狭窄的焦点,构建一个 SOLID API/包,然后构建它以支持其他版本(如果它甚至成为必要的话)。
    【解决方案2】:

    我有运行 Python 2.3 的服务器。 :-)

    但是不,你不需要支持它。大多数这样的服务器只是在运行,并没有安装任何新模块。

    今天创建新模块时,2.6、2.7、3.1 和 3.2 是要支持的版本。对于现有模块,您可以询问您的用户。 :-)

    【讨论】:

      【解决方案3】:

      您应该支持最新的 2.x 系列(截至目前为 2.7)和 3.x(截至目前为 3.2)。除非您特别需要支持旧版本,否则我认为您不需要去那里。

      对于 IronPython 和 Jython 等替代实现,只有在需要时才应该这样做。为您的应用程序支持所有这些实现可能很耗时(尽管可能具有教育意义)。

      作为辅助节点,要在 Python 的多个版本/实现上测试您的应用,我推荐tox

      【讨论】:

      • 谢谢,也谢谢你的毒物参考。就我而言,我不是在谈论应用程序,它是几个 Python 包(我将使用链接编辑我的问题)。至于“需要”,我猜这些包不会很受欢迎,但我试图猜测[可能沉默的]潜在用户的“需要”。
      • 嗯,大多数是 2.7,其次是 3.2。您应该(实际上)从这些开始,如有必要,将其“移植”给其他人。
      猜你喜欢
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 2014-04-09
      相关资源
      最近更新 更多