将版本放入软件包名称的错误方法?

时间:2019-01-17 13:07:25

标签: python python-2.7 package python-import directory-structure

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

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

现在是我的问题。将版本号包含在软件包名称中或完全包含在子软件包中是不好的方法吗? 例如mypackage_0_1/mypackage/0_1/

如果是这样,什么是解决此问题的好选择?

1 个答案:

答案 0 :(得分:1)

在大多数情况下,无论语言如何,软件包中的版本号都用于传达兼容性。例如,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的兼容性,并且它们都不向前兼容。

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