You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac终端编译Pierrehumbert气候Python代码遇f2py未找到问题求助

解决《行星气候原理》旧代码组件安装的f2py报错问题

问题描述

我要安装Pierrehumbert所著《行星气候原理》里的老旧Python代码组件,该组件依赖gfortran编译器。我已安装gcc,推测gfortran也已连带安装,但执行python setup.py build --lite时出现sh: f2py: command not found错误。

已知F2PY是Python与Fortran的桥接工具,属于NumPy的一部分,也可作为独立命令行工具使用。原代码基于numpy 1.17开发,我当前使用numpy 1.24.3,已将代码中的numpy.float替换为numpy.float64以适配新版本,但怀疑原代码依赖的旧版f2py与当前NumPy存在兼容性问题,寻求解决方案。

终端报错记录

Last login: Mon May  1 19:55:58 on ttys000
widmerhans@Mac-mini-2 ~ % cd /Users/widmerhans/Documents/Python_PRINCIPLES_OF_PLANETARY_CLIMATE_Buch/PlanetaryClimateCourseware/CliMT-master
widmerhans@Mac-mini-2 CliMT-master % python setup.py build --lite
Found executable /usr/local/bin/gfortran
Using gnu95 compiler
src/grid
['src/grid/Driver.f90']

 Building _grid.so ... 

sh: f2py: command not found
f2py -c -m _grid --fcompiler=gnu95 --noopt -Isrc/grid -Isrc/grid/include -Isrc/grid/src -Isrc/grid/src/include --f77flags="-DIM=1 -DJM=1 -DKM=30 -ffixed-line-length-132 -fdefault-real-8" --f90flags="-DIM=1 -DJM=1 -DKM=30 -fdefault-real-8 -fno-range-check -ffree-form" _grid.pyf src/grid/Driver.f90 src/grid/src/dimensions.F90
sh: f2py: command not found
+++ Compilation failed
widmerhans@Mac-mini-2 CliMT-master % 

解决方案

1. 修复f2py命令可访问性

从Python 3.9及更高版本开始,NumPy默认不再将f2py可执行文件添加到系统PATH中,导致直接调用f2py会提示找不到命令。解决方法:

  • 直接修改setup.py文件,将所有f2py替换为python -m numpy.f2py
  • 临时在终端中用python -m numpy.f2py替代f2py测试命令是否可行

2. 适配新版本NumPy的f2py参数

旧版f2py的部分参数在新版本中已被废弃或调整,检查并修改setup.py中的f2py命令参数:

  • 将--noopt替换为-O0(新版本NumPy中--noopt已被移除)
  • 若当前gfortran版本较高,将--fcompiler=gnu95替换为--fcompiler=gfortran以匹配编译器版本

3. 创建匹配原依赖的虚拟环境

如果上述调整后仍存在兼容性问题,建议创建虚拟环境安装原代码指定的numpy版本:

# 创建虚拟环境
python -m venv climt_env
# 激活虚拟环境(Mac/Linux)
source climt_env/bin/activate
# 安装原代码依赖的numpy版本
pip install numpy==1.17
# 重新执行安装命令
python setup.py build --lite

4. 验证gfortran兼容性

虽然终端提示找到gfortran,但仍需确认版本是否符合原代码要求:

gfortran --version

若版本过低,可更新gcc/gfortran到兼容原代码的稳定版本。

内容的提问来源于stack exchange,提问作者widmerhans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 05:22:26