哪个 Python 版本用于构建 PyPi 包?
Which Python version to be used for building PyPi package?
我正在构建 PyPi 包,它与 Python 3.8 及更高版本兼容。
也就是说Python的最低版本是3.8,所以我在Python3.8环境下构建包。
我的问题是我应该为 Python 3.8 和 3.9 单独构建包吗?
我认为实际构建包的是模块 build
,因此 Python 的版本无关紧要。不是吗?
版本无关紧要,您可以在技术上使用 Python 3.9
构建一个包,它也可以在 Python 3.8
上运行。确保版本兼容性的最快和最简单的方法是在您打算支持的最低版本上构建它,因此我建议使用 3.8
.
构建一次
如果你想测试包是否适用于不同的 Python 版本,你可以使用 tox to run your automated tests on multiple versions in an easy way (automated tests are tests that you execute through pytest or unittest).
Here is how Python does its versioning 以及版本的含义。假设您正在构建包以使其在版本 3.8
和所有后续 3.x
版本上运行,那么如果它构建并适用于 3.8
,它将 almost 当然适用于 3.9
、3.10
、3.11
等...
虽然 2.x
和 3.x
等主要版本(以及 4.x
如果发布的话)在它们之间会有足够多的不兼容更改,因此假设它们是不安全的兼容。
这取决于您要发布的内容。如果您构建并发布 sdist(源代码分发,.tar.gz)——Python 版本无关紧要。如果您构建并发布源轮 — Python 版本无关紧要。如果您构建和发布一个带有用 C 编写的编译扩展的二进制轮子 — Python 版本非常重要,您必须分别为每个主要 Python 版本构建轮子。
我正在构建 PyPi 包,它与 Python 3.8 及更高版本兼容。 也就是说Python的最低版本是3.8,所以我在Python3.8环境下构建包。
我的问题是我应该为 Python 3.8 和 3.9 单独构建包吗?
我认为实际构建包的是模块 build
,因此 Python 的版本无关紧要。不是吗?
版本无关紧要,您可以在技术上使用 Python 3.9
构建一个包,它也可以在 Python 3.8
上运行。确保版本兼容性的最快和最简单的方法是在您打算支持的最低版本上构建它,因此我建议使用 3.8
.
如果你想测试包是否适用于不同的 Python 版本,你可以使用 tox to run your automated tests on multiple versions in an easy way (automated tests are tests that you execute through pytest or unittest).
Here is how Python does its versioning 以及版本的含义。假设您正在构建包以使其在版本 3.8
和所有后续 3.x
版本上运行,那么如果它构建并适用于 3.8
,它将 almost 当然适用于 3.9
、3.10
、3.11
等...
虽然 2.x
和 3.x
等主要版本(以及 4.x
如果发布的话)在它们之间会有足够多的不兼容更改,因此假设它们是不安全的兼容。
这取决于您要发布的内容。如果您构建并发布 sdist(源代码分发,.tar.gz)——Python 版本无关紧要。如果您构建并发布源轮 — Python 版本无关紧要。如果您构建和发布一个带有用 C 编写的编译扩展的二进制轮子 — Python 版本非常重要,您必须分别为每个主要 Python 版本构建轮子。