tmux混淆pipenv会话

问题描述 投票:0回答:1

我正在大量使用pipenv(Python)和tmux。我的每个项目都有自己的pipenv环境,我喜欢在此环境中启动tmux,例如,运行以下命令:

pipenv run tmux

这对于我运行此命令的第一个项目来说效果很好。但是,当我为第二个项目运行它时(第一个tmux会话仍处于活动状态),第二个tmux会话中的新窗格将从第一个tmux会话中的pipenv环境开始。

确切地说:第二个tmux会话的初始窗格不会发生此问题,只有在我打开新窗格时才会出现。

有什么想法吗?

tmux pipenv
1个回答
0
投票

启动tmux服务器时会设置全局环境,并且该环境用于所有窗格,大概pipenv需要一些东西才能在环境中有所不同。您将需要弄清楚将要设置的内容。

然后您有几个选择:

  • 使用-L来使用不同的tmux服务器而不是不同的tmux会话,因此每个服务器都具有从其开始的环境。但是,您最终可能会拥有许多tmux服务器。

  • 将所需的pipenv放入tmux update-environment选项,以便在创建会话时将其复制到会话环境中。请注意,它也将在附加时复制(但显然,这只会影响附加后创建的窗格)。

  • 在新窗格中自行配置tmux内的环境,如何执行此操作将取决于pipenv具有哪些功能。我不知道如果只是一个环境变量,那可能很简单。

new-windowsplit-window具有用于显式设置环境变量的-e标志,但是不幸的是,它也从未扩展到new-session。您也许仍然可以使用-e创建第二个窗口,然后杀死第一个窗口。

© www.soinside.com 2019 - 2024. All rights reserved.