From b29ce2109f49c0b82517fa9d3e2bbacc1f8b34ec Mon Sep 17 00:00:00 2001 From: konstantin Date: Sun, 30 Sep 2018 20:30:07 +0300 Subject: [PATCH] Fix installation for python 3.7 Changes list: - Use setuptools instead of distutils to handle `setup_requires` in `setup()`. - Require Cython package for setup and always build `.pyx` to `.c`. It also requires `python-dev` to be installed (see `.travis.yml`). --- setup.py | 27 +++++++++------------------ 1 files changed, 9 insertions(+), 18 deletions(-) diff --git a/setup.py b/setup.py index 5fa89f5..fc53b69 100644 --- a/setup.py +++ b/setup.py @@ -1,13 +1,13 @@ #!/usr/bin/env python -from distutils.core import setup, Extension +from setuptools import setup, Extension import os.path -try: + +def build_ext(*args, **kwargs): from Cython.Distutils import build_ext - have_pyrex = 1 -except: - have_pyrex = 0 + return build_ext(*args, **kwargs) + # Directory which libstemmer sources are unpacked in. library_dir = 'libstemmer_c' @@ -39,16 +39,8 @@ # Set the include path to include libstemmer. include_dirs = ('src', os.path.join(library_dir, 'include')) -if have_pyrex: - # Add the pyrex sources, and a special rule so distutils knows how to - # use them. - src_files.append('src/Stemmer.pyx') - cmdclass = {'build_ext': build_ext} -else: - # Add just the C sources. - src_files.append('src/Stemmer.c') - cmdclass = {} - +src_files.append('src/Stemmer.pyx') + long_description = r""" Stemming algorithms @@ -125,9 +117,8 @@ "Topic :: Text Processing :: Indexing", "Topic :: Text Processing :: Linguistic", ], - + setup_requires=['Cython>=0.28.5,<1.0'], ext_modules = [Extension('Stemmer', src_files, include_dirs = include_dirs)], - cmdclass = cmdclass + cmdclass = {'build_ext': build_ext} ) -