【问题标题】:tmux confuses pipenv sessionstmux 混淆了 pipenv 会话
【发布时间】:2020-04-03 22:03:55
【问题描述】:

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

pipenv run tmux

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

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

有什么想法吗?

【问题讨论】:

    标签: tmux pipenv


    【解决方案1】:

    全局环境是在 tmux 服务器启动时设置的,用于所有窗格,大概pipenv 需要一些东西在环境中有所不同。您需要弄清楚它期望设置什么。

    那么你有几个选择:

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

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

    • 您自己在新窗格中配置 tmux 中的环境,您如何执行此操作将取决于 pipenv 有哪些可用功能。我不知道。如果它只是一个环境变量,它可能会很容易。

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

    【讨论】:

    • -L 是一个很棒且简单的解决方案。 @Nicholas,非常感谢!!
    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 2013-04-12
    • 2013-09-09
    • 1970-01-01
    相关资源
    最近更新 更多