Skip to content

Version 38.5.0 fails to build extension #1271

@djhoese

Description

@djhoese

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

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions