我正在尝试使用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
答案 0 :(得分:3)
好吧,编写makefile只需convention,因此它们可以在标准的unix环境中运行。 尽管如此,make来自* nix,如果你已经安装了make,那么你可能有msys提供基本工具,脚本以unix方式执行,而不像windows会这样做...
使用windows上的mingw-make为我工作的示例makefile:
all:
./test.py
test.py
有#!C:\\Python27\\python.exe
或者如果python在PATH中#!python
就足够了,那就是:
all:
python test.py