Error when using f2py module in new xp65 environment (but worked in hh5)

Dear Hive,

I am using f2py to compile Fortran code into a python module:

#!/bin/bash
#module use /g/data/hh5/public/modules
#module load conda/analysis3-unstable
module use /g/data/xp65/public/modules
module load conda/analysis3-25.04

f2py -m module -c mrnbc.f qmm.f stat.f
mv module.cpython-310-x86_64-linux-gnu.so ../

This is called from within the Python code via: import module

However, I am getting errors in the f2py compilations step. Here is the complete output:

Loading conda/analysis3-25.04
  Loading requirement: singularity
Traceback (most recent call last):
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/bin/f2py", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/lib/python3.11/site-packages/numpy/f2py/f2py2e.py", line 766, in main
    run_compile()
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/lib/python3.11/site-packages/numpy/f2py/f2py2e.py", line 594, in run_compile
    build_backend = f2py_build_generator(backend_key)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/lib/python3.11/site-packages/numpy/f2py/_backends/__init__.py", line 6, in f2py_build_generator
    from ._distutils import DistutilsBackend
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/lib/python3.11/site-packages/numpy/f2py/_backends/_distutils.py", line 3, in <module>
    from numpy.distutils.core import setup, Extension
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/lib/python3.11/site-packages/numpy/distutils/core.py", line 24, in <module>
    from numpy.distutils.command import config, config_compiler, \
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/lib/python3.11/site-packages/numpy/distutils/command/config.py", line 19, in <module>
    from numpy.distutils.mingw32ccompiler import generate_manifest
  File "/g/data/xp65/public/apps/med_conda/envs/analysis3-25.04/lib/python3.11/site-packages/numpy/distutils/mingw32ccompiler.py", line 27, in <module>
    from distutils.msvccompiler import get_build_version as get_build_msvc_version
ModuleNotFoundError: No module named 'distutils.msvccompiler'
mv: cannot stat 'module.cpython-310-x86_64-linux-gnu.so': No such file or directory

A quick Copilot search response is: numpy.distutils is trying to import a Windows-specific module (msvccompiler) even on non-Windows systems like macOS or Linux.

Note that this worked on hh5 analysis-unstable. I am using xp65 analysis-25.04

Cheers,
Justin

Update: the compile worked with the latest edge environment: module load conda/analysis3_edge-25.06

1 Like

OK. Have you tried with conda/analysis3-25.06 @jpeter?
Looks like a distutils issue.