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

Can't find msbuild with 2.4.0+ #1118

Closed
QuLogic opened this issue May 26, 2022 · 4 comments
Closed

Can't find msbuild with 2.4.0+ #1118

QuLogic opened this issue May 26, 2022 · 4 comments

Comments

@QuLogic
Copy link

QuLogic commented May 26, 2022

Description

I'm trying to update Matplotlib into the latest cibuildwheel. However, I'm running to the problem on Windows that it cannot find msbuild. This fails with cibuildwheel 2.4.0, 2.5.0, or 2.6.0, but works with 2.3.1.

Bisecting points me to e5c210c (broken build vs previous commit).

Build log

https://github.com/QuLogic/matplotlib/runs/6604628328?check_suite_focus=true

CI config

https://github.com/QuLogic/matplotlib/blob/ba16d002d5bc55a5145589662a81b3ba22ba9503/.github/workflows/cibuildwheel.yml

@QuLogic
Copy link
Author

QuLogic commented May 26, 2022

Looking through that change, I see that there is a major upgrade of setuptools from 59.6.0 to 60.2.0, which includes the change:

#2896: Setuptools once again makes its local copy of distutils the default. To override, set SETUPTOOLS_USE_DISTUTILS=stdlib.

and indeed, if I add CIBW_ENVIRONMENT_WINDOWS: SETUPTOOLS_USE_DISTUTILS=stdlib, then the build passes.

However, I do not understand why this is necessary with cibuildwheel. We unfortunately do not have tests running on GitHub Actions for Windows, but do run tests on AppVeyor for Windows. However, in that case, we have setuptools-62.3.2 installed and do not need to use stdlib distutils.

@Czaki
Copy link
Contributor

Czaki commented May 26, 2022

As I could see your appveyor builds are python 3.8 and 3.9 and failing cibuildwheel is python 3.10. Could you check if builds of 3.8 and 3.9 will work?

@henryiii
Copy link
Contributor

Also your CI is using conda, I believe, which will be very different as far as compiler configuration.

@QuLogic
Copy link
Author

QuLogic commented May 27, 2022

No, it does not pass with 3.9 or 3.8.

I managed to cut away most the tests into a GitHub Action that only builds on Windows: https://github.com/QuLogic/matplotlib/actions/runs/2393780852
This fails on all versions with the same error.

I forgot about this, but we do some crazy hack to get the compiler search path:
https://github.com/matplotlib/matplotlib/blob/6296e500cfbf6c5a9247a016a059505b9330bc9f/setupext.py#L528-L548
So I guess it's on us to fix...

@QuLogic QuLogic closed this as completed May 27, 2022
@QuLogic QuLogic closed this as not planned Won't fix, can't repro, duplicate, stale May 27, 2022
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

No branches or pull requests

3 participants