setup_requires mit Cython?

Ich bin erstellen einer setup.py - Datei für ein Projekt mit einigen Cython extension Module.

Hab ich schon bekommen, das funktioniert:

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

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

Diese installiert in Ordnung. Das setzt jedoch Cython ist installiert. Was ist, wenn es nicht installiert ist? Ich verstehe, das ist, was die setup_requires parameter für:

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

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

Jedoch, wenn Cython nicht bereits installiert ist, wird dies natürlich scheitern:

$ 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

Was ist der richtige Weg, dies zu tun? Ich muss ja irgendwie importieren Cython nur nach der setup_requires Schritt läuft, aber ich brauche Cython zur Festlegung der ext_modules Werte.

InformationsquelleAutor Claudiu | 2016-05-26
Schreibe einen Kommentar