无法在Windows上使用Eclipse导入使用f2py生成的文件

时间:2014-12-12 15:04:54

标签: python windows import f2py

我在Linux中开发了一些Python代码(使用带有Pydev的Eclipse),它回忆起一些用f2py生成的模块(扩展名为“* .so”),可以在这个操作系统上完美执行。现在我也需要在Windows上运行它们,但我发现了一些困难。

在Windows上,当我运行不需要这些模块的Python代码时,一切都很好。但是如果我需要导入它们(例如,“import WHATEVER”,WHATEVER.so使用f2py生成的文件),我收到错误“ImportError:No module named WHATEVER”。这些模块与主Python文件(即/ projectname / src /)中的路径相同。我已经检查了PYTHONPATH,我没有看到任何错误(这条路已经在其中)。

我也尝试使用Python的命令窗口导入它们,找到完全相同的问题。它似乎无法打开这些文件,即使它正在查找正确的目录。任何人都可以弄清楚我忘了什么吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

Linux上由f2py生成的.so文件特定于Linux,并且不能在其他操作系统上运行。这就是为什么你不能在Windows上运行Linux二进制程序,或在Linux上运行Windows .exe的原因 - 格式完全不同。为了在Windows上使用您的库,您需要在Windows上编译它们以生成.dll个文件。 gcc / gfortran以及其他一些版本可用于Windows。我个人更喜欢Cygwin,因为它的包管理器/安装程序非常简单。

答案 1 :(得分:0)

正如MattDMo所评论的那样使用dll是一个非常好的建议。但是,这意味着使用ctypes,当Fortran子例程返回多个变量时(至少对于像我这样的newbe),这会变得有点棘手。对我来说非常好的另一个选项是使f2py生成扩展名为“ .pyc”而不是之前的“ .so”的文件。为此,一切都得到了很好的解释here。这样做的好处是我不需要修改在Linux环境中完成的代码,并且仍然可以在Windows中运行。