The source member, 
~/opt/anaconda3/lib/python3.11/site-packages/numpy/f2py/_backends/-init_.py,

def f2py_build_generator(name):
    if name == "meson":
        from ._meson import MesonBackend
        return MesonBackend
    elif name == "distutils":
        from ._distutils import DistutilsBackend
        return DistutilsBackend
    else:
        raise ValueError(f"Unknown backend: {name}")

appears to be where the "key" is chosen, furthermore, in f2p2e.py sets the 
background_key and invokes 2py_build_generator. To my knowledge, I'm not 
running meson. So, what do you think the best way is to fix my problem?

Please advise,

Sam Dupree
 



On Sun, 04 Jan 2026 18:23:22 -0800, Bill Ross <[email protected]> wrote:
 
Uninformed debugging:

> build_backend = f2py_build_generator(backend_key)

Can you inspect that backend_key? It seems  like it could be 'key' to choosing 
the wrong back end.

Bill


 

--

Phobrain.com


 

On 2026-01-04 17:18, Samuel H Dupree Jr wrote:



I am resurrecting a Python program I wrote a few years under Python 3.9. I'm 
presently:


        Running Python 3.11 under Mac OSX Sequoia (ver. 15.7.1) 
        Using NumPy version 1.26.4
        Running on an Intel (x86-64) Mac Pro Desktop (2019)
         

The program uses a Fortran 77 subroutine that was wrapped using f2py when I 
running Python 3.9. However, when I attempt to wrap that same subroutine (the 
source code is attached to this note) using f2py in Python 3.11, I get the 
following error message.

 

(base) user@Mac-Pro accgravityfiled_builder_f2py % f2py -c accgravityfield.f  
-m accgravityfield 
Traceback (most recent call last):
  File "/Users/user/opt/anaconda3/bin/f2py", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File 
"/Users/user/opt/anaconda3/lib/python3.11/site-packages/numpy/f2py/f2py2e.py", 
line 766, in main
    run_compile()
  File 
"/Users/user/opt/anaconda3/lib/python3.11/site-packages/numpy/f2py/f2py2e.py", 
line 594, in run_compile
    build_backend = f2py_build_generator(backend_key)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/Users/user/opt/anaconda3/lib/python3.11/site-packages/numpy/f2py/_backends/__init__.py",
 line 6, in f2py_build_generator
    from ._distutils import DistutilsBackend
  File 
"/Users/user/opt/anaconda3/lib/python3.11/site-packages/numpy/f2py/_backends/_distutils.py",
 line 3, in <module>
    from numpy.distutils.core import setup, Extension
  File 
"/Users/user/opt/anaconda3/lib/python3.11/site-packages/numpy/distutils/core.py",
 line 24, in <module>
    from numpy.distutils.command import config, config_compiler, \
  File 
"/Users/user/opt/anaconda3/lib/python3.11/site-packages/numpy/distutils/command/config.py",
 line 19, in <module>
    from numpy.distutils.mingw32ccompiler import generate_manifest
  File 
"/Users/user/opt/anaconda3/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'
(base) user@Mac-Pro accgravityfiled_builder_f2py % 

 

As for gfortran is concerned:

 

(base) user@Mac-Pro accgravityfiled_builder_f2py % gfortran -v 
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/15.2.0/bin/../libexec/gcc/x86_64-apple-darwin24/15/lto-wrapper
Target: x86_64-apple-darwin24
Configured with: ../configure --prefix=/usr/local/opt/gcc 
--libdir=/usr/local/opt/gcc/lib/gcc/current --disable-nls 
--enable-checking=release --with-gcc-major-version-only 
--enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-15 
--with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr 
--with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl 
--with-zstd=/usr/local/opt/zstd --with-pkgversion='Homebrew GCC 15.2.0' 
--with-bugurl=https://github.com/Homebrew/homebrew-core/issues 
--with-system-zlib --build=x86_64-apple-darwin24 
--with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.2.0 (Homebrew GCC 15.2.0) 
(base) user@Mac-Pro accgravityfiled_builder_f2py %

 

I have two questions:


        Why is f2py in a Mac OSX Intel based environment attempting to import 
'distutils.msvccompiler' that is required for Windows' environment only?
        What do I need to do to eliminate this problem?


Any thoughts?

Sam Dupree

 

 

_______________________________________________
NumPy-Discussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/numpy-discussion.python.org
Member address: [email protected]

_______________________________________________
NumPy-Discussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/numpy-discussion.python.org
Member address: [email protected]



_______________________________________________
NumPy-Discussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/numpy-discussion.python.org
Member address: [email protected]

Reply via email to