2011-10-10 40 views
1

我试图更新我的软件包scikits.bvp_solver(来源here),并且遇到了f2py生成文件的一些问题。在2009年生成的文件“bvp_solverf-f2pywrappers2.f90”和“bvp_solverfmodule.c”允许使用“python setup.py build_ext --inplace”构建软件包,但如果我删除它们并尝试重建,错误用f2py修改编译的问题

scikits/bvp_solver/lib/bvp_solverf-f2pywrappers2.f90:218.48: 

       use guess_3_wrap__user__routines 
               1 
Fatal Error: Can't open module file 'guess_3_wrap__user__routines.mod' for reading at (1): No such file or directory 
scikits/bvp_solver/lib/bvp_solverf-f2pywrappers2.f90:11.19: 

添加此使用语句的部分不出现在旧版本的文件中。我很难找出如何解决这个问题。任何人都可以提供意见f2py在过去两年有哪些主要变化?

+2

包含“模块guess_3_wrap__user__routines”的文件是否存在?如果存在,是否在失败的文件之前编译? – haraldkl

+0

我认为该文件应该由f2py自动生成,因为它是bvp_interface.pyf文件中的模块名称之一。我没有看到目前生成的文件中的任何一个。 –

回答

1

我终于通过消除guess_3_wrap__user__routines并将相关代码移动到python来解决了这个问题。

0

如果您没有'guess_3_wrap_ 用户 _routines.mod'文件,您应该在构建使用它的文件之前重新编译它。对于我在我的命令窗口中设置为'Intel Composer XE 2011 Intel(R)Visual Studio 2010'的同样的问题,我输入了'gfortran'(这是我的Fortran编译器)和Fortran文件,因此在您的案例'使用guess_3_wrap_ 用户 _routines.f'(或扩展名为'.f90')并运行。这应该重新编译'使用guess_3_wrap_ 用户 _routines.f'再次获得'.mod'文件。