我正在从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 version,如下所示(在脚本之前添加了${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?(不改变环境)。有可能吗?你知道吗
规则的第一行描述目标的先决条件。它没有描述如何运行目标。向该行添加
${PYTHON373}
就是说,如果该文件发生更改,则应该重建目标。你知道吗规则中的第二行(由制表符缩进)显示了如何运行命令。如果要使用其他Python解释器运行命令,则必须将其添加到要运行的命令中:
相关问题 更多 >
编程相关推荐