Compaq Visual Fortran 6.6 + MSVC 环境 Fortran 封装成 Python 包

Python可以使用 numpy库中的 f2py 将Fortran程序封装成pyd库。在Linux环境下,按照官方文档一步步操作就OK了。但是在windows系统就稍复杂些,一般资料都是建议通过 MinGW使用gfortran编译器。 想要使用 Compaq Visual Fortran 6.6 编译器 搭配 Microsoft Visual C++ Compiler for Python 2.7 环境,就需要踩坑了。

经过尝试,结论如下:

  1. windows下安装numpy,最简单的方法是下载预编译好的二进制包 http://www.lfd.uci.edu/~gohlke/pythonlibs/
  2. 如果系统完整安装了 Compaq Visual Fortran 6.6(设置了系统路径),python目录下的f2py.py可以自动搜索可用的 fcompiler 。经测试不提供 --fcompiler 参数也行。
  3. 如果系统完整安装了Microsoft Visual Studio 2008 等其他开发环境(包括Express版本),那么c compiler的路径也是可以自动识别的。经测试不提供 --compiler 参数也行。直接运行 python f2py.py -c Foo.F -m foo就可以将Foo.F 封装成 foo.pyd 库,通过import foo来调用。
  4. 如果嫌弃Visual Studio 太臃肿,系统安装了 Microsoft Visual C++ Compiler for Python 2.7,想用这个做c compiler,那么就有一个小坑,运行 f2py.py 进行封装时,可能会提示 error: Unable to find vcvarsall.bat,然而系统中 大概在C:\Program Files\Common Files\Microsoft\Visual C++ for Python\9.0目录已经存在了 vcvarsall.bat,即便配置了path变量也依然找不到。原因是msvc9compiler.py 并不从环境变量指定的路径中寻找’vcvarsall.bat’,而是通过注册表来寻找…,然而,不知为什么编译器安装过程没有配置注册表,解决办法参考这里

此外,f2py也支持 Intel 和IBM 的fortran编译器,可以说是很成熟了。

你可能感兴趣的:(Compaq Visual Fortran 6.6 + MSVC 环境 Fortran 封装成 Python 包)