有人为我们设置了cmake,让我们使用pybind创建一个.pyd模块,我们将其与一些纯python文件一起打包到一个wheel中。
我们正在从旧的3.7版python转换到一个新的版本,所以我们希望在新老两个版本上都支持wheel,至少现在是这样。
我已经阅读了pybind文档,由于我不熟悉cmake,我发现它不清楚,所以我希望得到澄清。
我的理解是你必须编译两次,一次是“针对”Python 3.7,另一次是针对更新的版本,但我不认为这有什么关系(如果你要手工编写 Package 到python),或者最多我认为如果我们针对两个不同的主要版本(即python2和python3),这有什么关系。
我的问题是这是否真的有必要,我能避免第二次编译,把我在编译“for python 3.7”时得到的.pyd砰的一声关进我们为新的python构建的wheel里吗?
1条答案
按热度按时间ryevplcw1#
是的,这是必要的。CPython ABI在版本之间会发生变化,经常是以不兼容的方式,所以你必须为每个版本单独编译。