我正在尝试在 Make 目标中运行 Python 代码段,但我无法弄清楚这些东西在 Make 中是如何工作的。
到目前为止,这是我的尝试:
define BROWSER_PYSCRIPT
import os, webbrowser, sys
try:
from urllib import pathname2url
except:
from urllib.request import pathname2url
webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
endef
BROWSER := $(shell python -c '$(BROWSER_PYSCRIPT)')
Run Code Online (Sandbox Code Playgroud)
我想在目标中使用 $(BROWSER) ,例如:
docs:
#.. compile docs
$(BROWSER) docs/index.html
Run Code Online (Sandbox Code Playgroud)
这真的是个坏主意吗?
相关:https ://stackoverflow.com/q/649246/4937930
您无法像在单个配方中那样调用多行变量,而是会扩展到多个配方并导致语法错误。
一个可能的解决方法是:
export BROWSER_PYSCRIPT
BROWSER := python -c "$$BROWSER_PYSCRIPT"
docs:
#.. compile docs
$(BROWSER) docs/index.html
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3530 次 |
最近记录: |