我用 python 和 f2py 编写了一些代码,主要使用 linux。这一切都很好,但现在我想与 Windows 用户分享它,所以我正在尝试制作一个可分发给不一定有 gfortran 或 gcc 的用户的模块。我可以访问 windows xp 盒子,正在使用 mingw 和 gfortran。我可以在该机器上编译和使用该模块,但在其他机器上创建的 pyd 似乎需要 dll 的 libgcc 和 libgfortran。这是来自http://www.scipy.org/F2PY_Windows的示例:
subroutine hello ()
write(*,*)'Hello from Fortran90!!!'
end subroutine hello
编译
python c:\path\to\python\scripts\f2py.py -c \
--fcompiler=gnu95 --compiler=mingw32 \
-lmsvcr71 -m foo foo.f90
这在我编译它的机器上按预期工作,但如果我将它复制到另一台机器,我会得到
DLL load failed: The specified module could not be found.
使用依赖walker,我发现它找不到libgcc_s_dw2-1.dll 和libgfortran-3.dll 的dll。是否可以在不假设用户拥有 gcc 和 gfortran 的情况下创建一个我可以分发的 pyd?我在两台机器上都使用 python2.7,都是 32 位的。一个是xp,另一个是windows 7。