Python 次要版本之间的 Wheel 不兼容
Wheel Incompatibility between Python Minor Versions
我正在 PyPi 上发布一个包,它将支持 Python 3.6+,并希望构建尽可能少的轮子。
我读过 Python's packaging system for wheels and looked at the NumPy project for an example. Reading PEP 513 and PEP 571 也很有见地。
问题是:为什么轮子向前与 Python 次要版本更改不兼容?
例如,从 3.5 升级到 3.6 会带来 f 弦。但似乎用 Python 3.5(不使用 f-strings)构建的轮子应该能够 运行 在 Python 3.6 环境中很好。这里有什么问题?
纯Python写的2-3兼容的代码可以发布在万向轮中。一个适合所有 Python 版本的轮子。示例:https://pypi.org/project/SQLObject/#files
但是包含用 C 编写的模块的项目必须针对每个平台(处理器架构和 32/64 位)、OS 和 Python 版本单独发布,因为 C 代码必须是编译不同。示例:https://pypi.org/project/Cheetah3/#files
PS。全面披露:我是这两个项目的维护者。
我正在 PyPi 上发布一个包,它将支持 Python 3.6+,并希望构建尽可能少的轮子。
我读过 Python's packaging system for wheels and looked at the NumPy project for an example. Reading PEP 513 and PEP 571 也很有见地。
问题是:为什么轮子向前与 Python 次要版本更改不兼容?
例如,从 3.5 升级到 3.6 会带来 f 弦。但似乎用 Python 3.5(不使用 f-strings)构建的轮子应该能够 运行 在 Python 3.6 环境中很好。这里有什么问题?
纯Python写的2-3兼容的代码可以发布在万向轮中。一个适合所有 Python 版本的轮子。示例:https://pypi.org/project/SQLObject/#files
但是包含用 C 编写的模块的项目必须针对每个平台(处理器架构和 32/64 位)、OS 和 Python 版本单独发布,因为 C 代码必须是编译不同。示例:https://pypi.org/project/Cheetah3/#files
PS。全面披露:我是这两个项目的维护者。