Python脚本,在其停止后留下激活的虚拟机



我正在尝试创建一个实用程序CLI,该CLI创建一个内部只有.venv的空python项目。

我想要的功能之一是,当CLI结束项目创建时,它会将bash留在项目文件夹中,并激活virtualenv。这样:

(base) ubuntu@pc:~/dev/cli$ python cli.py start ./folder
... do it's magic ...
... and ends up like this:
(.venv) ubuntu@pc:~/dev/cli/folder$ 

请注意,现在cwd位于文件夹内,**(.venv(**已激活。

我能够通过使用来实现我的部分目标(更改文件夹(

import os
os.chdir("./folder")
os.execl("/bin/bash", "/bin/bash")

但在程序停止后,没有找到保持venv激活的方法。

有什么想法吗??

bash具有允许使用非标准初始化文件的-rcfile选项。

import os
os.chdir("./folder")
os.execl("/bin/bash", "/bin/bash", "--rcfile", ".venv/bin/activate")

这应该足以使新的.venvbash外壳中处于活动状态。

最新更新