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

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

command = "ls; bash"

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

注意

琐碎的方式:

command =“workon my_env; bash”

或其来源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交互后执行多次.

人们可以轻松地扩展自定义命令,只需在my_env中编辑部件work.因此,如果您想从加载虚拟环境自动执行ls appart,您可以编写myon工作.相反.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。