为 linux 和 windows 用户发布 cython 源代码

Publishing cython sources for linux and windows users

我想在 pypi 上发布我的 cython 库。

我想通过编译 64 位架构和 32 位架构的源代码来大大简化 window 用户的生活。

到目前为止,我的设置如下所示:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize

module = Extension('*', ['package/*.pyx'])

setup(ext_modules=cythonize(module))

当我做 python setup.py sdist 时,我可以做 pip install path/to/tarball,编译源代码。

我的问题是,如果我使用 windows 虚拟机编译,我如何发布项目以便 Unix 用户可以自己编译源代码,而 windows 用户不编译源代码但获得 .pyd 安装在他们的 python 路径中?

对于 Unix 用户创建一个 sdist:

python setup.py sdist

w32/w64 用户创建二元轮:

python setup.py bdist_wheel

轮子必须在安装它们的同一平台上创建; setuptools 无法跨平台编译。因此,对于 w32/w64,您必须 运行 32 位和 64 位 windows 以及相应的 compilers、Python 版本(二元轮依赖于版本)和相应的头文件。