tmux环境变量加载优先级?

时间:2019-01-16 19:35:08

标签: tmux

在我不了解的情况下,我从tmux收到一个错误。

我有一堆私有的python模块,我将它们塞入本地文件夹并添加到PYTHONPATH中。具体来说,在我的.bashrc中,有一行将这些内容添加到PYTHONPATH中。 tmux已设置为使用bash,这似乎执行得很好:

$ tmux new -d -s loggin "echo $PYTHONPATH > blah"
$ cat blah
:/home/scott/python_packages/local_models/:/home/scott/python_packages/ml_battery/

上面的输出是预期的。但是,当我尝试从这些库之一运行模块时,会发生故障:

$ tmux new -d -s loggin "python3 -m ml_battery.logging_server /home/scott/big_heavy_wood.log 2> blah"
$ cat blah
/usr/bin/python3: Error while finding spec for 'ml_battery.logging_server' (ImportError: No module named 'ml_battery')

这似乎表明tmux很难找到ml_battery模块,该模块已证明在我的PYTHONPATH上。

如果我将Tmux放入不分离的外壳中,只需覆盖明显的底部即可:

$ tmux
*** In tmux now ***
$ echo $PYTHONPATH
:/home/scott/python_packages/local_models/:/home/scott/python_packages/ml_battery/
$ python3 -m ml_battery.logging_server /home/scott/big_heavy_wood.log
About to start TCP server...

有效!

简而言之,当我运行tmux detached时,即使它位于PYTHONPATH上,也无法找到我的python软件包,但仅当以detached运行时才找到。这种差异使我感到震惊,而且我不知道如何继续对此问题进行故障排除。 tmux可能加载环境变量并以非直观的顺序执行给定命令吗?至少那是我可怕的猜测。

什么会导致tmux无法找到处于分离状态的python软件包?

0 个答案:

没有答案