将 Python 个虚拟环境与 Terminator 结合使用
Using Python Virtual Environments with Terminator
使用Terminator,用户可以在配置文件中定义布局。使用这些布局,用户可以设置要在启动时执行的命令。因此,例如,可以创建一个终端自动执行 ls
的布局(注意 bash
命令以避免终端关闭):
command = "ls; bash"
现在,如何让终结者加载一个 Python 虚拟环境?当然,在加载环境的情况下保持 bash 控制台处于活动状态。
备注
琐碎的方法:
command = "workon my_env; bash"
或其 source my_env/bin/activate
等价物(不使用 virtualenvwrapper
),将无法工作。
诀窍是仅使用 "one" 命令即可完成所有操作: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
,值为 "whatever we want to execute"。在这种情况下:workon my_env
.
PROMPT_COMMAND
在第一次执行后立即取消设置,以避免每次与 shell 交互后多次执行。
只需编辑 workon my_env
部分即可轻松扩展自定义命令。因此,例如,如果您想通过加载虚拟环境自动执行 ls
appart,您可以改为编写 workon my_env; ls
。
使用Terminator,用户可以在配置文件中定义布局。使用这些布局,用户可以设置要在启动时执行的命令。因此,例如,可以创建一个终端自动执行 ls
的布局(注意 bash
命令以避免终端关闭):
command = "ls; bash"
现在,如何让终结者加载一个 Python 虚拟环境?当然,在加载环境的情况下保持 bash 控制台处于活动状态。
备注
琐碎的方法:
command = "workon my_env; bash"
或其 source my_env/bin/activate
等价物(不使用 virtualenvwrapper
),将无法工作。
诀窍是仅使用 "one" 命令即可完成所有操作: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
,值为 "whatever we want to execute"。在这种情况下:workon my_env
. PROMPT_COMMAND
在第一次执行后立即取消设置,以避免每次与 shell 交互后多次执行。
只需编辑 workon my_env
部分即可轻松扩展自定义命令。因此,例如,如果您想通过加载虚拟环境自动执行 ls
appart,您可以改为编写 workon my_env; ls
。