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

Windows下f2py编译Fortran模块报错:无法找到fmodule.mod文件

解决Windows下f2py编译Fortran模块时找不到.mod文件的问题

核心问题分析

你遇到的Cannot open module file 'fmodule.mod'错误,本质是f2py编译时无法找到依赖的Fortran模块定义文件(.mod),常见原因包括依赖模块未被正确编译、编译顺序错误,或者路径参数配置不当。结合你的环境(Python 3.11.7、NumPy 1.26.2、GNU Fortran 13.2.0、Windows 10),以下是针对性的解决步骤:


解决方案步骤

1. 确认依赖模块的存在与编译顺序

如果你的module.f90中使用了use fmodule语句,说明代码依赖名为fmodule的模块:

  • 若fmodule是单独的文件(fmodule.f90),编译时必须将两个文件都传入命令,保证f2py能处理依赖:
    python -m numpy.f2py -c -m module fmodule.f90 module.f90
    
  • 若fmodule和主模块写在同一个module.f90文件中,先手动用gfortran预编译生成.mod文件,再让f2py读取:
    # 先生成.mod文件
    gfortran -c module.f90
    # 再用f2py编译,指定.mod所在目录(当前目录用-I./)
    python -m numpy.f2py -c -m module -I./ module.f90
    

2. 检查模块名与文件名的一致性

GNU Fortran对模块名大小写不敏感,但f2py可能因名称匹配问题找不到文件:

  • 确保Fortran代码中module fmodule的名称,和对应的文件名(如fmodule.f90)保持一致,避免拼写或大小写差异。

3. 修正build-dir路径配置

指定build-dir时,需确保目录存在且权限足够,同时显式指定.mod文件的搜索路径:

# 先创建build目录(如果不存在)
mkdir build
# 预编译生成.mod文件到build目录
gfortran -c module.f90 -o build/module.o
# 用f2py编译时指定build-dir和include路径
python -m numpy.f2py -c -m module --build-dir ./build -I./build module.f90

4. 验证GNU Fortran环境配置

确保gfortran已加入系统PATH:
在CMD/PowerShell中执行gfortran --version,若能正常输出版本信息,说明环境配置正确;若报错,需将gfortran的安装路径(如mingw64/bin)添加到系统环境变量PATH中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:21:13