在Mac上包含已编译的f2py扩展名的文件

时间:2015-04-10 19:16:45

标签: python numpy f2py

我想在Mac上发送一个我编译的fortran扩展名(用f2py和gfortran编译)。

问题是它不能在其他Mac上运行,除非它们还安装了xcode(2 GB,yikes!)和gfortran。显然,当我发送已编译的扩展名时,会遗漏一些额外的文件。

是否有人知道要包含的其他文件或(更好)如何编译fortran扩展而无需发送任何其他文件?

谢谢,

标记

1 个答案:

答案 0 :(得分:0)

好吧,当您使用f2py编译模块时,它实际上创建了一个使用您的系统库的动态库(.so)。例如,在我的计算机上,链接步骤是,

gfortran [...]  -lpython2.7 -lgfortran -o ./my_f2py_module.so

因此,如果您希望能够在另一台计算机上执行生成的f2py模块(假设具有相同的体系结构),那么libpython2.7.solibgfortran.so应该可用。

我对OS / X部署知之甚少,但我认为你应该

  1. 默认使用Mac上的编译器(即clang),它应该与f2py一起使用。或者在两个系统上安装gfortran。
  2. 确保在两种情况下链接到相同版本的python
  3. 还可以使用ldd ./my_f2py_module.so列出链接到的所有库。如果在当前系统中找不到其中一些,您也可以使用此命令查看它。