关于virtualenvwrapper:在makefile上停用virtualenv

deactivate virtualenv on Makefile

我正在编写makefile,我想在makefile中调用virtualenvwrapper命令"deactivate"。

这个线程的anwser如何离开/退出/停用python virtualenv?有一条评论说"deactivate"命令不是二进制的,也不是脚本,它是在激活virtualenv时创建的dinamyc别名shell。

那么,我该怎么做呢?


正如在virtualenvwrapper代码中所看到的,deactivate是一个函数,当您使用workon时,它将被源于您的env。

我认为,出于安全原因,make不允许当前用户的函数和别名访问makefile内部。所以,在makefile中,您应该源代码virtualenwrapper.sh,处理您想要的virtualenv,然后您就可以访问deactivate命令了。

作为你的makefile上的一个目标,你应该做如下的事情:

1
2
axe:
    source virtualenvwrapper.sh; workon brings_axe; deactivate