BUG: Issue building from source on MacOS Python 3.11

### Describe the bug

I have followed the steps mentioned at https://scikit-learn.org/stable/developers/advanced_installation.html#editable-mode. but it did not work and giving me the following error.

I want to contribute to the community but I am not able to get my development environment ready. Any help/pointer is highly appreciated.

### Steps/Code to Reproduce

`pip install -v --no-use-pep517 --no-build-isolation -e .`


### Expected Results

pip install should succeed without error

### Actual Results
```
Using pip 24.0 from /Users/tuhinsharma/.virtualenvs/scikit-learn/lib/python3.11/site-packages/pip (python 3.11)
Obtaining file:///Users/tuhinsharma/Documents/Git/scikit-learn
  Running command python setup.py egg_info
  /Users/tuhinsharma/Documents/Git/scikit-learn/setup.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
    from pkg_resources import parse_version
  Partial import of sklearn during the build process.
  error: Multiple top-level packages discovered in a flat-layout: ['sklearn', 'build_tools'].

  To avoid accidental inclusion of unwanted files or directories,
  setuptools will not proceed with this build.

  If you are trying to create a single distribution with multiple packages
  on purpose, you should not rely on automatic discovery.
  Instead, consider the following options:

  1. set up custom discovery (`find` directive with `include` or `exclude`)
  2. use a `src-layout`
  3. explicitly set `py_modules` or `packages` with a list of names

  To find more information, look for "package discovery" on setuptools docs.
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> See above for output.
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: /Users/tuhinsharma/.virtualenvs/scikit-learn/bin/python -c '
  exec(compile('"'"''"'"''"'"'
  # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
  #
  # - It imports setuptools before invoking setup.py, to enable projects that directly
  #   import from `distutils.core` to work with newer packaging standards.
  # - It provides a clear error message when setuptools is not installed.
  # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
  #   setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
  #     manifest_maker: standard file '"'"'-c'"'"' not found".
  # - It generates a shim setup.py, for handling setup.cfg-only projects.
  import os, sys, tokenize
  
  try:
      import setuptools
  except ImportError as error:
      print(
          "ERROR: Can not execute `setup.py` since setuptools is not available in "
          "the build environment.",
          file=sys.stderr,
      )
      sys.exit(1)
  
  __file__ = %r
  sys.argv[0] = __file__
  
  if os.path.exists(__file__):
      filename = __file__
      with tokenize.open(__file__) as f:
          setup_py_code = f.read()
  else:
      filename = "<auto-generated setuptools caller>"
      setup_py_code = "from setuptools import setup; setup()"
  
  exec(compile(setup_py_code, filename, "exec"))
  '"'"''"'"''"'"' % ('"'"'/Users/tuhinsharma/Documents/Git/scikit-learn/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' egg_info --egg-base /private/var/folders/24/q83vy1q54_181scf16svmls40000gn/T/pip-pip-egg-info-a3645qry
  cwd: /Users/tuhinsharma/Documents/Git/scikit-learn/
  Preparing metadata (setup.py) ... error
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
```

### Versions

```shell
scikit - main branch (c1eee276fa501965e7b4e23e6349031092e33131)
Python - 3.11.8
MacOS Intel Sonoma 14.4.1 x86_64
```

COMMENT:
Can you be more specific about which instructions you followed and what steps you took? My expectation would be that if you follow the "build from source" instructions that you end up with a conda environment and Python 3.9. From the error you posted it looks more like a virtualenv and Python 3.11.

Labels: Bug