Build failure under Termux: can not execute sklearn/_build_utils/version.py

### Describe the bug

When attempting to install the newest (and older) versions of scikit-learn-1.6.dev0 using regular pip install, the installation fails due to a missing version.py file. This issue occurs on an Android system using Termux.
Environment details:
OS: Linux localhost 4.14.186+ (Android)
Architecture: aarch64
Python: 3.11
The error occurs during the Meson build process, which tries to execute a non-existent file:
/data/data/com.termux/files/home/downloads/scikit-learn/sklearn/_build_utils/version.py
A workaround patch has been developed to address this issue:
```
#!/bin/bash

# Navigate to the scikit-learn directory, e.g.:
cd ~/downloads/scikit-learn

# Extract version from pyproject.toml and remove "dev" suffix
VERSION=$(grep 'version =' pyproject.toml | sed 's/version = "\(.*\)"/\1/' | sed 's/\.dev0//')

# Create the directory if it doesn't exist
mkdir -p sklearn/_build_utils

# Create the version.py file with the correct content
cat << EOF > sklearn/_build_utils/version.py
#!/usr/bin/env python
print('${VERSION}')
EOF

# Make the file executable
chmod +x sklearn/_build_utils/version.py

echo "Created sklearn/_build_utils/version.py with version ${VERSION}"
```
This patch:
- Extracts the version number from pyproject.toml
- Removes the "dev" suffix
- Creates the missing version.py file with a generic Python shebang
- Makes the file executable

After applying this patch, the Meson build process completes successfully, and the installation can proceed: 
```
cpu family: aarch64
Host machine cpu: aarch64
Compiler for C supports arguments -Wno-unused-but-set-variable: YE
Compiler for C supports arguments -Wno-unused-function: YES
Compiler for C supports arguments -Wno-conversion: YES
Compiler for C supports arguments -Wno-misleading-indentation: YES
Library m found: YES
Program python3 found: YES (/data/data/com.termux/files/usr/bin/python3.11)
Run-time dependency OpenMP for c found: YES 5.1
Found pkg-config: YES (/data/data/com.termux/files/usr/bin/pkg-config) 0.29.2
Run-time dependency python found: YES 3.11    Build targets in project: 111
Found ninja-1.11.1.git.kitware.jobserver-1 ...
```
and:
```
Successfully installed scikit-learn-1.6.dev0  ~/downloads/scikit-learn $
```

### Steps/Code to Reproduce

pip install -U -v scikit-learn

### Expected Results

.

### Actual Results

.

### Versions

```shell
scikit-learn-1.6.dev0, and older
```

COMMENT:
So I got curious enough to try Termux out and to be honest let's call this an interesting but not the most pleasant experience :sweat_smile:.

I am going to close this issue since I can not reproduce the OP problem. @Manamama I guess if the patch works for you, good enough ...

The approach I took, install as many things as I could with `pkg` for example numpy, scipy, ninja, something like:
```
pkg install python-numpy python-scipy ninja
```

Install the rest of the required build dependencies:
```
pip install cython meson-python
```

Build with `--no-build-isolation` to use system numpy and scipy rather than recompiling from source:
```
pip install scikit-learn -v --no-build-isolation
```

This builds fine on my phone and `import sklearn` works fine. Running the tests with `pytest` showed 2 failures which I am not going to investigate ...

Some caveats I bumped into, I guess regular Termux users may be aware of them:
- see recommended install instructions from numpy and pandas https://github.com/termux/termux-packages/discussions/19126, which should be very similar for scikit-learn
- system Python comes without openssl so you get a broken pip :sweat:, need to install openssl it with `pkg`
- for some reason you need to use `LDFLAGS=-lpython3.11` before trying to install scikit-learn otherwise you'll get a missing symbol on import. You need to do `pip cache purge` to avoid the wheels being reused if you try to reinstall
- the missing symbol on import was similar to https://github.com/termux/termux-packages/issues/19213. Apparently this is because Termux is not Linux https://github.com/android/ndk/issues/201.

Labels: Build / CI, Low Priority