gpt4 book ai didi

python - 使用 $(shell ...) 从 makefile 执行 python

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:01 32 4
gpt4 key购买 nike

我希望能够使用 $(shell ...) 命令从 makefile 执行 python。然而,诀窍是我不想编写完整的 python 脚本。

这是我正在尝试做的事情:

VAR = $(shell python -c '''
import argparse
import sys
def main():
print(r'Hello world')
if '__main__' == __name__:
main()
''')

我尝试过不同的变体,但它不起作用。总会有一些问题 - 缺少分隔符、不正确的缩进、未知的符号等。以前有人做过类似的事情吗?

感谢任何帮助。

最佳答案

你的引用是错误的。你正在跨越那些不喜欢被跨越的语法线。 Python 重要的空白规则使问题变得更加复杂。话虽这么说,以下解决方案应该适合您:

define PYSCRIPT
import sys
def main():
print(r"Hello world")
if "__main__" == __name__:
main()
endef
VAR =: $(shell python -c '$(PYSCRIPT)')

$(info VAR: $(VAR))

''' ... ''' 在 shell 级别不是一个有意义的引用机制。 shell 将其视为一个空字符串,后跟一个左引号。这就是 python 长字符串语法。

make 需要行连续标记来理解 make 方向/指令/等。跨越多行。在 python 脚本上下文中的问题是 python 有严格的换行/缩进/空格规则,不能很好地配合。

make 没有该限制的唯一上下文是在定义 block 内。

关于python - 使用 $(shell ...) 从 makefile 执行 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19729334/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com