Вернуть значение из скрипта python в переменную makefile - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть требование, при котором я должен запускать скрипт python через make-файл. Сценарий Python выполняет некоторые вычисления и возвращает значение. Я хочу получить это значение в этой переменной makefile. Как я могу это сделать?

Я хочу что-то вроде этого:

mymakefile.mke

$output = python process.py

process.py

import os

def main():
    value = "01.00.00"
    return value
if __name__ == "__main__":
    main()

1 Ответ

0 голосов
/ 17 февраля 2020

Если вы хотите получить значение в переменной Make , вы можете сделать это:

output := $(shell python process.py)

(обратите внимание на использование := вместо =, потому что если вы используйте =, Make будет запускать скрипт каждый раз, когда он оценивает переменную.)

Если вы хотите, чтобы значение в переменной shell в рецепте, посмотрел на синтаксис, который вы бы использовали в командной строке в вашей оболочке, что, вероятно, выглядит примерно так:

output=$(python process.py); echo $output

, но в правиле make-файла вы должны экранировать знаки доллара с большим количеством знаков доллара:

some_target:
    output=$$(python process.py); echo $$output

Обратите внимание, что поскольку каждая строка рецепта выполняется в своей собственной под-оболочке, назначение и использование переменной должно быть в одной строке; он не доживет до следующей строки.

...