Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build broken by setuptools 65.0 #645

Closed
tacaswell opened this issue Aug 15, 2022 · 4 comments · Fixed by #647
Closed

build broken by setuptools 65.0 #645

tacaswell opened this issue Aug 15, 2022 · 4 comments · Fixed by #647
Milestone

Comments

@tacaswell
Copy link

pypa/setuptools#3505 removed the modules for interacting with the (very) old msvc compliers, however numpy.distutils unconditionally imports distutils.msvccompiler which in turn breaks install pywt.

I think this is the relevant part of the build log:

      running build_clib
      building 'c_wt' library
      Traceback (most recent call last):
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
          main()
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 261, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/build_meta.py", line 404, in build_wheel
          return self._build_with_temp_dir(['bdist_wheel'], '.whl',
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/build_meta.py", line 389, in _build_with_temp_dir
          self.run_setup()
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/build_meta.py", line 475, in run_setup
          self).run_setup(setup_script=setup_script)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/build_meta.py", line 334, in run_setup
          exec(code, locals())
        File "<string>", line 478, in <module>
        File "<string>", line 474, in setup_package
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 973, in run_commands
          self.run_command(cmd)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 322, in run
          self.run_command("build")
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
          self.distribution.run_command(command)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 132, in run
          self.run_command(cmd_name)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
          self.distribution.run_command(command)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/_distutils/command/build_clib.py", line 112, in run
          self.build_libraries(self.libraries)
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/setuptools/command/build_clib.py", line 84, in build_libraries
          self.compiler.compile(
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/numpy/distutils/ccompiler.py", line 89, in <lambda>
          m = lambda self, *args, **kw: func(self, *args, **kw)
                                        ^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/numpy/distutils/ccompiler.py", line 272, in CCompiler_compile
          jobs = get_num_build_jobs()
                 ^^^^^^^^^^^^^^^^^^^^
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/numpy/distutils/misc_util.py", line 91, in get_num_build_jobs
          from numpy.distutils.core import get_distribution
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/numpy/distutils/core.py", line 24, in <module>
          from numpy.distutils.command import config, config_compiler, \
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/numpy/distutils/command/config.py", line 19, in <module>
          from numpy.distutils.mingw32ccompiler import generate_manifest
        File "/home/tcaswell/.virtualenvs/dd311/lib/python3.11/site-packages/numpy/distutils/mingw32ccompiler.py", line 28, in <module>
          from distutils.msvccompiler import get_build_version as get_build_msvc_version
      ModuleNotFoundError: No module named 'distutils.msvccompiler'
      [end of output]

@rgommers rgommers added this to the v1.4.0 milestone Aug 15, 2022
@rgommers
Copy link
Member

Thanks for the report @tacaswell. This is not surprising. It may still be reverted, but we need to do a release soon anyway to support Python 3.11 (RC1 is out so we can upload wheels), so may take this one along by adding an appropriate upper bound on setuptools version.

@grlee77 it looks like we have nothing else pressing for 1.4.0. What do you think about doing a release later this week or next week?

@grlee77
Copy link
Contributor

grlee77 commented Aug 16, 2022

Sure, that sounds good. I may be able to take a look this weekend

@rgommers
Copy link
Member

The breakage is fixed in setuptools 65.0.2, so less of a problem. We should still put in an upper bound and do a release in the near future with Python 3.11 wheels though, to avoid scikit-image & co becoming blocked by not having PyWavelets wheels.

@grlee77
Copy link
Contributor

grlee77 commented Sep 10, 2022

I have a bit of time this weekend. I just opened #647 to pin setuptools and will also take a look at updating to test and build for Python 3.11

rgommers pushed a commit that referenced this issue Sep 11, 2022
…647)

pin to setuptools<65 to avoid potential breaking with future changes

closes gh-645 (broken build with setuptools 65.0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants