¿setup_requires con Cython?

Estoy creando unsetup.py archivo para un proyecto con algunos módulos de extensión de Cython.

Ya he conseguido que esto funcione:

from setuptools import setup, Extension
from Cython.Build import cythonize

setup(
    name=...,
    ...,
    ext_modules=cythonize([ ... ]),
)

Esto se instala bien. Sin embargo, esto supone que Cython está instalado. ¿Qué pasa si no está instalado? Entiendo que esto es lo que elsetup_requires El parámetro es para:

from setuptools import setup, Extension
from Cython.Build import cythonize

setup(
    name=...,
    ...,
    setup_requires=['Cython'],
    ...,
    ext_modules=cythonize([ ... ]),
)

Sin embargo, si Cython aún no está instalado, esto por supuesto fallará:

$ python setup.py install
Traceback (most recent call last):
  File "setup.py", line 2, in <module>
    from Cython.Build import cythonize
ImportError: No module named Cython.Build

¿Cuál es la forma correcta de hacer esto? Necesito importar de alguna maneraCython solo después delsetup_requires paso corre, pero necesitoCython para especificar elext_modules valores.

Respuestas a la pregunta(2)

Su respuesta a la pregunta