TL;DR: Install the NVIDIA driver (libcuda.so.1 ships with the driver, not the CUDA toolkit) or run CPU-only TensorFlow. This error means the machine has no NVIDIA driver, so the GPU build of TF cannot load. If you do not need the GPU, `pip install tensorflow-cpu` sidesteps the whole thing.

The error:
```text
ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
```

## Fix
1. Run `nvidia-smi`
   Expected: if it errors, there is no NVIDIA driver on this machine
2. If you need GPU: install the NVIDIA driver for your OS, then reinstall the matching TF + CUDA/cuDNN per TF's tested build table
   Expected: `import tensorflow` loads and `tf.config.list_physical_devices('GPU')` lists your card
3. If you do not need GPU: `pip install tensorflow-cpu`
   Expected: import works, no libcuda complaint

## When this applies
- import tensorflow fails naming libcuda.so.1
- running on a machine without an NVIDIA GPU/driver

## When this does not apply
- libcudart/libcublas errors (toolkit libs, different fix)
- tensorflow not installed at all

## Version compatibility
tensorflow 2.x GPU builds on Linux. libcuda.so.1 comes from the NVIDIA kernel driver package.

## Why it happens
TensorFlow's GPU build dlopens libcuda.so.1 at import. That file is installed by the NVIDIA driver, not by pip and not by the CUDA toolkit. No driver, no file, import fails.

## Edge cases
- Docker users: use the nvidia-container-toolkit and --gpus all, the host driver must exist.
- WSL2 needs the NVIDIA WSL driver on the Windows side.
- Do not fix this by copying libcuda.so.1 from another machine; install the driver.