在我的 makefile 的顶部有这样一行:
SHELL := /bin/sh
大多数命令都需要它。但是,我还想有一个 make 命令来激活我的虚拟环境,它位于不同的路径上。
这是我为其编写的代码:
activate:
source ~/.envs/$(APP)/bin/activate; \
问题是,这只是打印出此处写入的内容,而不会被执行。我读到它可能与只有 bash 了解源代码有关,但我不知道如何在activate
命令。
我该如何编写这个方法才能激活我的 virtualenv?
它确实被执行了。
Virtualenv 通过修改当前进程的环境来工作(这就是为什么你必须“获取”它)。然而,一个进程不能修改另一进程的环境。因此,要运行你的配方,make 会调用一个 shell 并将你的 virtualenv 命令传递给它,它会工作,然后 shell 退出,你的 virtualenv 就会消失。
简而言之,没有简单的方法可以在 makefile 中执行此操作。最简单的做法是创建一个脚本,首先获取 virtualenv,然后运行 make,然后运行该脚本而不是运行 make。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)