Python 如何激活虚拟环境以在makefile外部使用?

Python 如何激活虚拟环境以在makefile外部使用?,python,bash,makefile,virtualenv,Python,Bash,Makefile,Virtualenv,关于如何在makefile中使用虚拟环境,有很多答案。这不是我要问的 我有一个makefile,它为用户创建一个虚拟环境,并进行一系列安装。在脚本运行结束时,我希望将调用方留在虚拟环境中。为什么?因为在匆忙中很容易忘记激活并将后续库安装到os python中 我试过什么?我已经看了很多关于这个问题的答案,比如,和。所有人似乎都在处理如何使用venv inside Make,但没有人告诉我(据我所知)如何将用户留在虚拟环境中 具体地说,我想要这个等价物 make install #creates

关于如何在makefile中使用虚拟环境,有很多答案。这不是我要问的

我有一个makefile,它为用户创建一个虚拟环境,并进行一系列安装。在脚本运行结束时,我希望将调用方留在虚拟环境中。为什么?因为在匆忙中很容易忘记激活并将后续库安装到os python中

我试过什么?我已经看了很多关于这个问题的答案,比如,和。所有人似乎都在处理如何使用venv inside Make,但没有人告诉我(据我所知)如何将用户留在虚拟环境中

具体地说,我想要这个等价物

make install  #creates a virtual environment
source venv/bin/activate

(venv) prompt:>

由于操作系统的限制,您想要做的是不可能的。同样,你不能编写python脚本、perl脚本或任何其他类型的程序,在它们退出后将你留在venv中,你也不能让make在退出后将你留在venv中;(谢谢)在调用者的命令提示符下留下一条语句以便只需按“回车”键,这样的前景如何。“这也不可能吗?”疯狂的科学家;此外,从你的回答;“你也可以创建一个shell函数或shell别名来完成它,因为它们也在同一个shell进程中运行,而不是在子进程中。”这是否意味着我可以通过创建一个调用make然后激活环境的函数来绕过它?我同意你不能这样做,你不能像那样在shell进程之间跳转。但是,在
.bashrc
中创建一个函数或逻辑,在新shell打开时激活venv(有条件地根据您需要的任何相反条件)?