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

如何让f2py启用-std=legacy编译老旧FORTRAN77为Python模块

解决f2py编译FORTRAN77代码时的legacy标准问题

要让f2py编译你的FORTRAN77代码时启用-std=legacy标准,有几种可行的方法:

  • 通过环境变量传递编译参数
    在执行f2py命令前,先设置FFLAGS环境变量,让gfortran使用legacy标准:

    # Bash/Zsh 环境
    export FFLAGS="-std=legacy"
    f2py -c -m pymodel model.FOR --fcompiler=gnu95
    
    # Windows CMD 环境
    set FFLAGS=-std=legacy
    f2py -c -m pymodel model.FOR --fcompiler=gnu95
    
  • 直接在f2py命令中指定编译参数
    使用--f90flags参数将-std=legacy传递给gfortran(该参数对FORTRAN77代码同样生效):

    f2py -c -m pymodel model.FOR --fcompiler=gnu95 --f90flags="-std=legacy"
    
  • 永久配置编译参数(可选)
    如果你需要长期使用这个编译选项,可以修改numpy的f2py配置文件:
    找到numpy安装目录下的site-packages/numpy/f2py/site.cfg,或者用户主目录下的.numpy-site.cfg,在[gnu95]段落中添加:

    fflags=-std=legacy
    

    保存后,后续执行f2py时会自动应用这个参数。

这些方法都能让gfortran以legacy标准处理你的FORTRAN77代码,解决因语法兼容性导致的编译错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:42:37