Python 为 Windows 生成 SOABI/扩展后缀 (pep 3149)



当我在MacOS/Linux上编译一个基于cython的C扩展时,我得到一个名称为foo.cpython-37m-darwin.so.so文件。我可以使用以下命令获取扩展后缀:

import sysconfig
print(sysconfig.get_config_var('EXT_SUFFIX'))  # .cpython-37m-darwin.so
print(sysconfig.get_config_var('SOABI'))  # cpython-37m-darwin

在Windows上,我正在使用msys2-mingw构建C扩展,我得到了一个名为foo.cp37-win_amd64.pyd的文件,但是sysconfig.get_config_var('EXT_SUFFIX')返回.pyd,并且获取SOABI配置变量返回None

有没有办法可靠地在窗口上重建正确的完整扩展后缀?

看起来distutils提供了正确的信息:

import distutils
print(distutils.sysconfig.get_config_var('EXT_SUFFIX'))  # .cp37-win_amd64.pyd

最新更新