在 Makefile 上停用 virtualenv

Posted

技术标签:

【中文标题】在 Makefile 上停用 virtualenv【英文标题】:deactivate virtualenv on Makefile 【发布时间】:2014-11-22 13:30:54 【问题描述】:

我正在编写一个 Makefile,我想在 Makefile 中调用 virtualenvwrapper 命令“deactivate”。

这个线程How to leave/exit/deactivate a python virtualenv?的anwser有一条评论说“deactivate”命令不是二进制文件,也不是脚本,它是你激活你的virtualenv时创建的一个dinamyc别名shell。

那么,我该怎么做呢?

【问题讨论】:

【参考方案1】:

正如virtualenvwrapper code 中所见,deactivate 是一个函数,当您使用 workon 时,它会被引入到您的环境中。

我认为,出于安全原因,make 不会将 Makefile 内部的访问权限授予当前用户函数和别名。所以,在你的 Makefile 中,你应该获取 virtualenvwrapper.sh,在你想要的 virtualenv 上工作,然后你就可以访问你的 deactivate 命令了。

作为 axe 您的 Makefile 中的目标和 brings_axe 您已经拥有的 virtualenv,您应该执行以下操作:

axe:
    source virtualenvwrapper.sh; workon brings_axe; deactivate

【讨论】:

以上是关于在 Makefile 上停用 virtualenv的主要内容,如果未能解决你的问题,请参考以下文章

无法在 virtualenv 中导入 django,但在停用时可以工作

如何离开/退出/停用Python virtualenv

无法在 Jupyter notebook python 中停用 virtualenv

为什么我不能“停用”pyenv / virtualenv?如何“修复”安装

如何使用 makefile 激活 virtualenv?

如何从 bash 脚本中停用 virtualenv