compilation API fails for python 3.8, 3.9, 3.10, 3.11: ModuleNotFoundError: No module named 'distutils.msvccompiler'

I am having an unexpected error at the first step of the API when recompiling opentelemac on conda forge across versions of python: 3.9/3.10/3.11 image

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ~> Wrap_api built
    ~> Generating the API Python wrapper
        ~> First part of F2PY passed
Traceback (most recent call last):
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/scripts/python3/compilation/compil_tools.py", line 980, in compile_api_f2py
    output = check_output(cmd, shell=True, stderr=STDOUT)
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/subprocess.py", line 421, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/subprocess.py", line 526, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'f2py --quiet -c /home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/builds/gnu.dynamic/wrap_api/lib/api.pyf --fcompiler=gnu95  --opt="" -I/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/builds/gnu.dynamic/wrap_api/include -L/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/builds/gnu.dynamic/wrap_api/lib -lapi -ltelemac3d4api -ltelemac2d4api -lgaia4api -lnestor4api -ltomawac4api -lartemis4api -lkhione4api -lwaqtel4api -lgretel4api -lpartel4api -lbief4api -lparallel4api -lhermes4api -ldamocles4api -lspecial4api -lmascaret -lmetis --build-dir tmp_f2py' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/scripts/python3/compile_telemac.py", line 152, in <module>
    main()
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/scripts/python3/compile_telemac.py", line 144, in main
    compile_api_files(silent=not options.verbose,
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/scripts/python3/compilation/compil_tools.py", line 1034, in compile_api_files
    compile_api_f2py('api', api_dir, source_api, skip_source, ld_flags,
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/work/opentelemac/scripts/python3/compilation/compil_tools.py", line 982, in compile_api_f2py
    raise TelemacException(\
utils.exceptions.TelemacException: Error during the second part of F2PY: 1
Traceback (most recent call last):
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/f2py", line 10, in <module>
    sys.exit(main())
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/site-packages/numpy/f2py/f2py2e.py", line 691, in main
    run_compile()
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/site-packages/numpy/f2py/f2py2e.py", line 619, in run_compile
    from numpy.distutils.system_info import get_info
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/site-packages/numpy/distutils/system_info.py", line 196, in <module>
    from numpy.distutils.command.config import config as cmd_config
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/site-packages/numpy/distutils/command/config.py", line 19, in <module>
    from numpy.distutils.mingw32ccompiler import generate_manifest
  File "/home/conda/feedstock_root/build_artifacts/opentelemac_1728639103339/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.10/site-packages/numpy/distutils/mingw32ccompiler.py", line 28, in <module>
    from distutils.msvccompiler import get_build_version as get_build_msvc_version
ModuleNotFoundError: No module named 'distutils.msvccompiler'

You can check details here on Azure pipelines.

Is there anything else I need to specify when compiling the API? Because I see that you've adapted for different versions in 05c89230

So I don't really know where the error comes from.