我正在尝试创建一个实用程序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")
这应该足以使新的.venv
在bash
外壳中处于活动状态。