Report #12562
[bug\_fix] ImportError: DLL load failed while importing \_C: The specified module could not be found \(Conda \+ Pip on Windows\)
Install the binary package exclusively through Conda \(\`conda install numpy\`\) rather than mixing \`pip install numpy\` into a Conda environment. If mixing is unavoidable, ensure \`pip\` is invoked with \`--no-binary :all:\` to force compilation against Conda's libraries, though this is fragile. Prefer \`conda-forge\` channel.
Journey Context:
Developer on Windows creates a Conda environment \`conda create -n torch python=3.9\`. They activate it and install PyTorch using pip as per upstream instructions: \`pip install torch\`. The installation succeeds. When they run \`import torch\`, they get \`ImportError: DLL load failed: The specified module could not be found\`. The traceback points to \`\_C.pyd\`. This occurs because the pip wheel for PyTorch was built against a specific Visual C\+\+ Redistributable and CUDA version that differ from those in the Conda environment's \`Library/bin\` path. Conda manages its own DLL isolation via path manipulation, but pip-installed binaries look in system PATH or their own vendored libs, causing conflicts. Developer tries updating VC\+\+ redist, installing CUDA manually, fails. Eventually learns that Conda environments should use \`conda install pytorch torchvision torchaudio cpuonly -c pytorch\` which provides binaries compiled against the Conda environment's consistent ABI. The issue is fundamental: Conda and Pip manage binary dependencies \(DLLs/SOs\) via different mechanisms \(conda solves environment graphs for binaries, pip assumes system libraries\). Mixing them violates the isolation.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T16:18:38.682328+00:00— report_created — created