-
-
Notifications
You must be signed in to change notification settings - Fork 92
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
_cext.pyd depends on MSVCP140.dll, which is not distributed #187
Comments
Thanks for the separate ticket which makes things clearer on my end. I will do my best to investigate ASAP. |
Another alternative is statically linking the runtimes. Then none of the redist DLLs would be necessary to begin with, instead of needing to package them alongside the plugin. |
Python ships VCRUNTIME so there is no problem there but MSVCP is problematic. @QuLogic I would welcome your insight since I mostly followed your suggestions here. One difference I noticed between kiwi setup and Matplotlib is that in kiwi I re-enabled FH4, do you think it may be related ? |
I see you copied the setup from Matplotlib here: kiwi/.github/workflows/release.yml Lines 106 to 114 in 16735f9
These are settings for Meson(-python) but I just noticed you are using setuptools to build. Those flags should make MSVCP statically linked with Meson, but they actually do nothing with setuptools (or perhaps something else entirely, as it didn't error?) Maybe there was a warning that could be seen if the build was in verbose mode?
From
|
Thanks @QuLogic I missed this point. I considered switching to meson but never made the jump. |
I will have to try harder since my first attempt did not produce the expected result (https://github.com/nucleic/kiwi/actions/runs/11949548832). |
Maybe try |
Thanks for the suggestion but it does not seem to do the trick... (https://github.com/nucleic/kiwi/actions/runs/11999734728/job/33447988060) |
Building locally after patching cppy, I obtain the following dependencies, are those fine;
|
Based on the first post of this issue I think so but I would be happy if somebody can confirm. |
Yup, vcruntime*.dll is distributed with cpython, kernel32.dll & api-*.dll are internal windows libraries, and python313 is... python :) |
This is consistent with what we get: matplotlib/matplotlib#28687 (comment) |
Thanks |
Can somebody more knowledgeable than myself in cibuildwheel config help me figure out the reason this pipeline fails ? https://github.com/nucleic/kiwi/actions/runs/12036490541/job/33557857394 The override of MD with MT while not ideal does not cause issues locally nor in the CI test build. |
Ah, that's a 32-bit build; we don't have those any more in Matplotlib. Perhaps slightly different library names are needed there and @zooba might know. |
Ah yes, for 32-bit builds I ended up adding an extra In context of my build backend that includes this as a (default) option: https://github.com/zooba/pymsbuild/blob/master/pymsbuild/targets/pyd.props#L21 |
Thanks for the pointer. Given the name disabling FH4 might help. I will try to give that a try to see if I can keep 32bits windows this way. |
Sadly it does not work... I will just drop 32 bits build for now and re-investigate if somebody complains about their absence. |
Or document it as "for 32-bit builds you must also install the latest VC redist from https://aka.ms/vcredist" and move on with your life :) |
Looks like this has been fixed by #189 ? Any chance of a new release containing that in the next couple of weeks? I have deadlines :) |
I was considering waiting on the free-threaded build to be complete before cutting a new release. I will do my best to make a new release with or without free-threaded python support before Christmas. |
Since Setuptools new release is taking more time than I hoped I released 1.4.8 which fixes the linking issue and add support for free threaded Python except on Windows. |
Version: 1.4.7
_cext.pyd still depends MSVCP140.dll, even though this was supposed to have been fixed by #179 (?)
Found by installing Python in Windows Sandbox and trying to import matplotlib. Matplotlib (3.9.2) does not depend on these external dependencies
Matplotlib deps
Apologies if this counts as a duplicate of #168 or #181 (or the others), but the messaging in those issues seemed... muddy.
The text was updated successfully, but these errors were encountered: