I'm creating a setup.py
file for a project with some Cython extension modules.
I've already gotten this to work:
from setuptools import setup, Extension
from Cython.Build import cythonize
setup(
name=...,
...,
ext_modules=cythonize([ ... ]),
)
This installs fine. However, this assumes Cython is installed. What if it's not installed? I understand this is what the setup_requires
parameter is for:
from setuptools import setup, Extension
from Cython.Build import cythonize
setup(
name=...,
...,
setup_requires=['Cython'],
...,
ext_modules=cythonize([ ... ]),
)
However, if Cython isn't already installed, this will of course fail:
$ 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
What's the proper way to do this? I need to somehow import Cython
only after the setup_requires
step runs, but I need Cython
in order to specify the ext_modules
values.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…