Скрипт Python выполняется с Makefile - PullRequest
8 голосов
/ 30 июня 2009

Я пишу скрипты на Python и выполняю их в Makefile. Скрипт python используется для обработки данных в конвейере. Я бы хотел, чтобы Makefile выполнял скрипт каждый раз, когда я вносил изменения в свои скрипты на python.

У кого-нибудь есть идеи, как это сделать?

Ответы [ 3 ]

17 голосов
/ 30 июня 2009

Это не много информации, поэтому этот ответ немного расплывчатый. Основной принцип Makefiles - перечислить зависимости для каждой цели; в этом случае ваша цель (назовем ее foo) зависит от вашего скрипта на python (назовем его do-foo.py):

foo: do-foo.py
    python do-foo.py > foo

Теперь foo будет перезапускаться всякий раз, когда do-foo.py изменится (при условии, конечно, что вы вызовете make).

3 голосов
/ 30 июня 2009

А если сценарии, которые нужно запустить, не дают никакого полезного выходного файла, который можно использовать в качестве цели, вы можете просто использовать фиктивную цель:

scripts=a.py b.py c.py
checkfile=.pipeline_up_to_date

$(checkfile): $(scripts)
    touch $(checkfile)
    echo "Launching some commands now."

default: $(checkfile)
0 голосов
/ 30 июня 2009

Если вы хотите, чтобы Makefile автоматически «создавался» сразу после сохранения, pyinotify, который является оберткой для inotify, может быть единственной возможностью в Linux , Он регистрируется в ядре для обнаружения изменений FS и вызывает вашу функцию.

См. Мой предыдущий пост на эту тему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...