代码之家  ›  专栏  ›  技术社区  ›  Praind

将版本放入包名称的方法不正确?

  •  0
  • Praind  · 技术社区  · 6 年前

    我正在使用一个嵌入了Python环境的软件,它没有所有可用的标准Python模块。 例如,没有 pip pkg_resources . 添加第三方模块/包的唯一方法是将它们复制到中引用的路径中。 sys.path .

    目前,我正在编写自己的包的第一个版本,将来还会有更多的版本。

    现在问我问题。将版本号放在包名称中还是完全放在子包中被认为是一种不好的方法? 例如 mypackage_0_1/ mypackage/0_1/

    如果是这样,那么解决这个问题的一个好办法是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   PEdroArthur    6 年前

    在大多数情况下,包中的版本号(无论语言如何)用于通信兼容性。例如,qt:有qt4和qt5系列。这些数字意味着我们有不同的API,从qt4切换到qt5通常会破坏您的应用程序。同样,python遵循这种模式:您有python 2.x和3.x系列。这意味着,如果您为python 3.6编写应用程序,预计它将与python 3.7一起工作。换句话说,python 3.x版本是向前兼容的(也就是说,为旧版本的python 3.x编写的软件可以在新版本中正常运行)。但是,例如,为python 2.7编写应用程序并在python 3.7中运行它,通常会带来意想不到的结果。因此,python 3.x破坏了与python 2.x的兼容性,并且它们既不是向后兼容的前向兼容。

    因此,我的建议是遵循以下规则:仅在包名称中使用版本号,并且仅当您正在通信时,才创建包的一系列向前兼容版本。