gpt4 book ai didi

python - 使用 f2py 创建可分发的 Windows python 模块

转载 作者:太空宇宙 更新时间:2023-11-03 19:21:02 25 4
gpt4 key购买 nike

我用 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.

使用依赖项遍历器,我发现它找不到 libgcc_s_dw2-1.dll 和 libgfortran-3.dll 的 dll。是否可以创建一个可以分发的 pyd,而无需假设用户拥有 gcc 和 gfortran?我在两台机器上都使用 python2.7,都是 32 位的。一个是xp,另一个是windows 7。

最佳答案

作为在包中包含 libgcclibgfortran dll 的替代方案,应该可以链接到这些库的静态版本,前提是它们可以在您的 MinGW 版本。 (至少,我认为是这样。我没有使用 Python 或 pyds 的经验,但对于常规可执行文件和 dll 是可能的。)

查看用于链接的-static选项,或者如果您需要更多控制-static-libgcc-static-libgfortran

关于python - 使用 f2py 创建可分发的 Windows python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9756212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com