Mac使用f2py编译Fortran代码时出现distutils.msvccompiler模块缺失错误求助
解决Mac上f2py编译时
distutils.msvccompiler缺失的问题 步骤1:确认当前Python环境
先排查是否使用了适配Windows的Python环境(比如部分Anaconda环境),在终端执行以下命令查看:
which python python --version
如果输出路径指向Anaconda,建议切换到Homebrew安装的Python,或创建全新虚拟环境:
# 创建虚拟环境 python -m venv f2py_env # 激活环境 source f2py_env/bin/activate
步骤2:安装Mac编译工具链
Mac编译需要clang基础工具,执行以下命令安装(已安装则跳过):
xcode-select --install
步骤3:重装setuptools和numpy
可能存在依赖安装不完整的情况,重新安装:
pip uninstall -y setuptools numpy pip install setuptools numpy
步骤4:强制指定Mac兼容编译器
错误根源是f2py误调用了Windows的MSVC编译器,编译时显式指定Mac可用的编译器:
用GNU Fortran编译器
python -m numpy.f2py -c -m my_module fortrancode.pyf fortrancode.f95 --fcompiler=gnu95
用clang编译器
python -m numpy.f2py -c -m my_module fortrancode.pyf fortrancode.f95 --fcompiler=clang
步骤5:配置distutils强制使用Unix编译器
如果以上步骤无效,在用户目录创建~/.pydistutils.cfg文件,内容如下:
[build] compiler=unix [build_ext] compiler=unix
保存后重新执行编译命令即可。
内容的提问来源于stack exchange,提问作者JR_Arg22
相关产品推荐
相关产品推荐

