2012-05-30 2 views
2

Я пытаюсь создать модуль Python из кода Fortran с помощью f2py. Я создал Makefile для моего проекта. Я использую MinGW и Python 3.2.2 в Windows 7. Когда я запускаюmake не запускается .py файл

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 запустить команду, и как я могу это исправить?

EDIT: Выполнение команды, показанной на выходе не работает:

> 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 

EDIT 2: В этой связи возникает еще один вопрос - Что такое env и почему make его добавить?

EDIT 3: Основываясь на комментарий Флориана, кажется, что env была добавлена ​​make из-за наличия притон линии в f2py.py. Я отредактировал 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

И когда вы пытаетесь запустить команду, указанную в сообщении об ошибке? –

+0

@ IgnacioVazquez-Abrams, на какую команду вы ссылаетесь? – astay13

+0

Тот, который начинается с 'env'. –

ответ

3

Хорошо, это просто convention писать мейкфайлы так что они работают в стандартной среде UNIX. Тем не менее, make исходит из * nix, и если вы сделали установку, то у вас, вероятно, есть msys, который предоставляет базовые инструменты, а скрипты выполняются в unix-way, а не как окна, это сделает ...

Пример: Makefile, который работает для меня с помощью MinGW-делают на окнах:

all: 
    ./test.py 

с test.py имея хижину из #!C:\\Python27\\python.exe

или если питон находится в PATH #!python достаточно, как:

all: 
    python test.py 
+0

Спасибо, python находится в PATH, поэтому '#! Python' работает для меня. – astay13

Смежные вопросы