I first noticed this on a travis build for one of my projects. NetCDF4-python (one of my dependencies) fails to build when setuptools 38.5.0 is installed. Forcing the version to 38.4.0 fixes it. See https://travis-ci.org/pytroll/satpy/jobs/337509200#L940 for the failed job which ends with this exception:
File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/setuptools/command/py36compat.py", line 36, in add_defaults
self._add_defaults_ext()
File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/setuptools/command/py36compat.py", line 119, in _add_defaults_ext
build_ext = self.get_finalized_command('build_ext')
File "/opt/python/3.6.3/lib/python3.6/distutils/cmd.py", line 299, in get_finalized_command
cmd_obj.ensure_finalized()
File "/opt/python/3.6.3/lib/python3.6/distutils/cmd.py", line 107, in ensure_finalized
self.finalize_options()
File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 133, in finalize_options
_build_ext.finalize_options(self)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Distutils/build_ext.py", line 19, in finalize_options
self.distribution.ext_modules)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 920, in cythonize
aliases=aliases)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 815, in create_extension_list
kwds = deps.distutils_info(file, aliases, base).values
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 670, in distutils_info
return (self.transitive_merge(filename, self.distutils_info0, DistutilsInfo.merge)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 680, in transitive_merge
node, extract, merge, seen, {}, self.cimported_files)[0]
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 685, in transitive_merge_helper
deps = extract(node)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 650, in distutils_info0
cimports, externs, incdirs = self.cimports_externs_incdirs(filename)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Utils.py", line 44, in wrapper
res = cache[args] = f(self, *args)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 555, in cimports_externs_incdirs
for include in self.included_files(filename):
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Utils.py", line 44, in wrapper
res = cache[args] = f(self, *args)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 537, in included_files
include_path = self.context.find_include_file(include, None)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Compiler/Main.py", line 274, in find_include_file
error(pos, "'%s' not found" % filename)
File "/tmp/pip-build-lpsrf1ne/netCDF4/.eggs/Cython-0.27.3-py3.6-linux-x86_64.egg/Cython/Compiler/Errors.py", line 178, in error
raise InternalError(message)
Cython.Compiler.Errors.InternalError: Internal compiler error: 'constants.pyx' not found
I'm hoping that this is enough to get someones attention that knows what's wrong, but if a smaller example is needed I can try to work that out.
I first noticed this on a travis build for one of my projects. NetCDF4-python (one of my dependencies) fails to build when setuptools 38.5.0 is installed. Forcing the version to 38.4.0 fixes it. See https://travis-ci.org/pytroll/satpy/jobs/337509200#L940 for the failed job which ends with this exception:
See here for a working build where I forced setuptools to 38.4.0: https://travis-ci.org/pytroll/satpy/jobs/337598254#L863
I'm hoping that this is enough to get someones attention that knows what's wrong, but if a smaller example is needed I can try to work that out.