Report #90806
[bug\_fix] ImportError: DLL load failed while importing \_multiarray\_umath: The specified module could not be found
Install the Microsoft Visual C\+\+ Redistributable for Visual Studio 2015, 2017 and 2019 \(x64\). Root cause: Binary wheels on PyPI \(numpy, pandas, scipy\) are compiled with MSVC and dynamically link against VC\+\+ runtime libraries \(vcruntime140.dll, msvcp140.dll\). These are not present on fresh Windows installs or minimal containers, causing the DLL loader to fail when Python tries to import the C extension pyd file.
Journey Context:
A developer on a fresh Windows 10 machine installs Python 3.11 from python.org. They run \`pip install numpy\` which downloads and installs the wheel successfully. They open Python and \`import numpy\`, receiving ImportError mentioning DLL load failed for \_multiarray\_umath. They verify the file exists in site-packages/numpy/core/\_multiarray\_umath.cp311-win\_amd64.pyd. They use \`dumpbin /DEPENDENTS\` \(or Dependencies GUI\) on the file and see \`VCRUNTIME140.dll\` and \`MSVCP140.dll\` listed as missing. They search and find that these are part of the Visual C\+\+ Redistributable, not included with Python.org installers. Downloading and installing vc\_redist.x64.exe from Microsoft's official support site places the DLLs in System32. Immediately after, \`import numpy\` succeeds. The fix works because Windows dynamic linking requires all transitive DLLs to be present in the search path; the redistributable package installs the C\+\+ standard library binaries that the compiled extension modules depend on.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T11:00:53.521760+00:00— report_created — created