我正在从Pythone 2.x迁移到3.x。我正在尝试使用Python在Makefile中编译单个文件:
在Makefile中:
mySuperFile.c : $(ROOT)/lib/mySuperFileGenerate $(FILES_DIR) $(REPO_STATE_FILE)
$(ROOT)/lib/mySuperFileGenerate --out-dir=$(OUT_DIR) --repo=$(ROOT) --output=mySuperFile.c
其中 mySuperFileGenerate 是Python脚本,该脚本使用全局python版本,即2.x.x,并不满足我的要求:
!/usr/bin/env python
这就是为什么我要显式调用Python版本,例如这样(在脚本之前添加$ {PYTHON373}变量):
mySuperFile.c : ${PYTHON373} $(ROOT)/lib/mySuperFileGenerate $(FILES_DIR) $(REPO_STATE_FILE)
$(ROOT)/lib/mySuperFileGenerate --out-dir=$(OUT_DIR) --repo=$(ROOT) --output=mySuperFile.c
但是它根本不起作用。它仍然从环境-2.x调用该版本。
所以我的问题是:
如何指定在Makefile中确切使用哪个Python? (不更改环境)。有可能吗?
答案 0 :(得分:2)
规则的第一行描述了目标的先决条件。它没有描述如何运行目标。在该行中添加<meta name="theme-color" content="#2196F3">
的全部意思是,如果该文件发生更改,则应重建目标。
规则中的第二行(由TAB缩进)显示了如何运行命令。如果要使用其他Python解释器运行命令,则必须将其添加到要运行的命令中:
${PYTHON373}