将Python虚拟环境与终结器配合使用

时间:2015-07-20 19:13:46

标签: python virtualenv terminator

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

command = "ls; bash"

现在,我如何让Terminator加载Python虚拟环境呢?当然,保持bash控制台在加载环境时处于活动状态。

注意

琐碎的方式:

command = "workon my_env; bash"

或其source my_env/bin/activate等效(不使用virtualenvwrapper),无法使用。

1 个答案:

答案 0 :(得分:7)

诀窍是用" one"做一切事情。命令:bash。利用其-i选项(交互式)并使用自定义--rcfile,其中PROMPT_COMMAND设置为我们想要执行的任何内容。结果是这样的:

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

说明

  • 我们以交互式(bash)模式执行-i
  • 我们从自定义命令文件(--rcfile)而不是.bashrc执行命令。
  • 此文件的创建内容为.bashrc,另外还有一个命令。
  • 此额外命令导出PROMPT_COMMAND的值为&#34;无论我们想要执行什么&#34;。在这种情况下:workon my_env
  • 第一次执行PROMPT_COMMAND后,workon my_env未设置,以避免在每次与shell交互后执行多次。

只需编辑部件ls即可轻松扩展自定义命令。因此,例如,如果您想要从加载虚拟环境中自动执行workon my_env; ls appart,您可以改为编写<properties> <entry key="message.first">Hello</entry> <entry key="message.second">Hi</entry> </properties>