最近,我需要影响从python脚本itseft运行python脚本的bash shell。我开发了一个
Python utility package
pip
. 此软件包中的一个工作流需要激活Virtualenv才能按计划工作。这就是问题所在。
os.system('/bin/bash ./venv/bin/activate')
或:
subprocess.Popen(['/bin/bash', './venv/bin/activate')
当脚本执行时,它不会对shell做任何事情。基本上是因为这些命令是在独立进程中执行的(我猜),因此不会影响bash进程本身。
如何影响从脚本内部执行python脚本的父shell(添加一些环境、运行其他脚本等)?