make不运行.py文件

时间:2012-05-30 14:23:11

标签: python numpy makefile f2py

我正在尝试使用f2py从Fortran代码创建Python模块。我为我的项目设置了一个Makefile。我在Windows 7上使用MinGW和Python 3.2.2。当我运行

f2py.py -c --compiler=mingw32 -m itf itimes-f.f

一切都编译好了。但是,当我在Makefile中创建目标并运行它时,它会执行以下操作:

> make compilef
f2py.py -c --compiler=mingw32 -m itf itimes-f.f
process_begin: CreateProcess(NULL, env python.exe C:\Python32\Scripts\f2py.py -c
 --compiler=mingw32 -m itf itimes-f.f, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [compilef] Error 2

为什么不make运行命令,我该如何解决?

编辑:运行输出中显示的命令不起作用:

> env python.exe C:\Python32\Scripts\f2py.py -c --compiler=mingw32 -m itf itimes-f.f
'env' is not recognized as an internal or external command,
operable program or batch file.

但是,以下方法确实有效:

> python.exe C:\Python32\Scripts\f2py.py -c --compiler=mingw32 -m itf itimes-f.f

编辑2:这提出了另一个问题 - 什么是env以及为什么make添加它?

编辑3:根据Florian的评论,由于f2py.py中存在shebang线,env似乎添加了make。我编辑了f2py.py,在shebang前添加了一个#。我现在有以下问题:

>make compilef
f2py.py -c --compiler=mingw32 -m itf itimes-f.f
process_begin: CreateProcess(C:\Python32\Scripts\f2py.py, f2py.py -c --compiler=
mingw32 -m itf itimes-f.f, ...) failed.
make (e=193): Error 193
make: *** [compilef] Error 193

1 个答案:

答案 0 :(得分:3)

好吧,编写makefile只需convention,因此它们可以在标准的unix环境中运行。 尽管如此,make来自* nix,如果你已经安装了make,那么你可能有msys提供基本工具,脚本以unix方式执行,而不像windows会这样做...

使用windows上的mingw-make为我工作的示例makefile:

all:
    ./test.py

test.py#!C:\\Python27\\python.exe

的shebang

或者如果python在PATH中#!python就足够了,那就是:

all:
    python test.py