Commit 51cdfb6
CI: diagnose Windows DLL-load failure in
First Windows CI run failed uniformly across all four Python versions
with `ImportError: DLL load failed while importing simple`. `defs`
loaded fine on the same runner — the extension that fails is the first
one in the import chain that uses OpenMP (`cimport openmp` + `prange`).
Strong signal that `vcomp*.dll` cannot be found on Windows' loader
search path even though GitHub runners ship it in System32 (Python 3.8+
tightened loader search rules; System32 is not always consulted for
module imports).
Rather than guessing and iterating, add a Windows-only diagnostic step
that:
- reports the Python version and prefix,
- tries to load vcomp140 / vcomp140d / vcruntime140 / msvcp140 via
ctypes.CDLL so we know which ones are actually resolvable,
- runs `dumpbin /DEPENDENTS` on every built .pyd so the CI log lists
the delay-load dependencies we need to get on PATH,
- runs `python -v` importing `wlsqm.fitter.defs` then `simple` and
filters the trace for DLL / OpenMP lines so the error is visible
without drowning in loader noise.
The step is `continue-on-error: true` so it never fails the job on its
own; its only purpose is to give the follow-up commit a precise target.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>simple extension1 parent da7965f commit 51cdfb6
1 file changed
+16
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
72 | 88 | | |
73 | 89 | | |
74 | 90 | | |
| |||
0 commit comments