TL;DR: numpy needs the OpenBLAS shared library and your system does not provide it. Install the OpenBLAS runtime package for your Linux distro, or reinstall numpy from a wheel that bundles OpenBLAS. Then `import numpy` works.

## The error
```text
ImportError: libopenblas.so.0: cannot open shared object file: No such file or directory
```

## Fix it
1. Install the OpenBLAS runtime package. On Debian/Ubuntu:
   ```
   sudo apt install libopenblas0
   ```
   On RHEL/Fedora: `sudo dnf install openblas`. Expected: the package installs without errors.
2. Verify the library is now visible:
   ```
   ldconfig -p | grep libopenblas
   ```
   Expected: a line showing libopenblas.so.0.
3. Retry the import:
   ```
   python -c "import numpy; print(numpy.__version__)"
   ```
   Expected: prints the version, no error.
4. Alternative if you cannot install system packages: force a numpy wheel that bundles its own OpenBLAS:
   ```
   pip install --force-reinstall numpy
   ```
   Expected: the fresh wheel imports cleanly.

## When this applies
Use this when `import numpy` (or scipy, which shares the dependency) fails on Linux with the libopenblas.so.0 message.

## When it does not apply
On Windows or macOS numpy wheels bundle their own BLAS, so this error there means something else. If the missing file is a different .so, install that library instead.

## Compatibility
Linux, numpy/scipy built against system OpenBLAS (common with distro-packaged python or some cluster setups). Official PyPI manylinux wheels bundle OpenBLAS and do not hit this.

## Root cause
numpy links against the OpenBLAS linear-algebra library at import time. Some installs link the system copy instead of a bundled one, so a machine without the OpenBLAS runtime package fails the dynamic load.

## Edge cases
On HPC clusters the fix is usually `module load` of the right environment module rather than apt. In minimal docker images, add the package to the Dockerfile. If ldconfig still cannot see it after install, run `sudo ldconfig` once.