gpt4 book ai didi

python - 将 Python 虚拟环境与 Terminator 结合使用

转载 作者:太空狗 更新时间:2023-10-29 22:29:55 25 4
gpt4 key购买 nike

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 appart,你可以编写 workon my_env; ls 代替。

关于python - 将 Python 虚拟环境与 Terminator 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31524527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com