使用Python虚拟环境与终结者



使用Terminator,用户可以在配置文件中定义布局。通过这些布局,用户可以设置在启动时执行的命令。因此,例如,可以创建这样一个布局,其中终端自动执行ls(注意bash命令以避免终端关闭):

command = "ls; bash"

现在,我如何使终结者加载一个Python虚拟环境代替?当然,在环境加载时保持bash控制台活动。

注意

小方法:

command = "workon my_env; bash"

或它的source my_env/bin/activate等效(不使用virtualenvwrapper)不能工作

诀窍是只使用"一个"命令:bash。利用它的-i选项(交互式)并使用自定义--rcfile,其中PROMPT_COMMAND被设置为我们想要执行的任何内容。结果如下所示:

command = "bash --rcfile <(cat ${HOME}/.bashrc; echo 'export PROMPT_COMMAND="workon my_env; unset PROMPT_COMMAND"') -i"

  • 以交互(-i)模式执行bash
  • 我们从自定义命令文件(--rcfile)而不是.bashrc执行命令。
  • 这个文件是用.bashrc的内容加上一个命令创建的。
  • 这个额外的命令导出PROMPT_COMMAND的值为"我们想要执行的"。本例中:workon my_env .
  • PROMPT_COMMAND在第一次执行后被取消,以避免每次与shell交互后多次执行。

可以很容易地扩展自定义命令,只需编辑部分workon my_env。因此,例如,如果您想在加载虚拟环境之后自动执行ls,那么您应该编写workon my_env; ls

相关内容

  • 没有找到相关文章