当我在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