回答:
解決策は、conda環境を非アクティブにし、次にtmuxを開始してから、tmux内の環境を再度アクティブにすることです。
Tmuxセッションを開始した後、(condaがアクティブなenvなしで)次のことが起こります。
Tmuxセッション内で最初に行うとき:
conda activate myEnv
私は得る
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
代わりに私がする場合:
source deactivate
conda activate myEnv
すべてうまくいきます。which python
正しいパスを指します。
この動作は、の~/.profile
代わりにTMuxソースが原因で発生し~/.bashrc
ます。私~/.profile
はこれです:
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
あなたはそれを見ることができます最初に ~/.bashrc
供給されると、その後 ~/bin
と~/.local/bin
されている前に追加します。私自身が経験したように、これはconda
ヒックアップを引き起こします。
解決策は、でPATHを操作する2つのブロックをコメント化すること~/.profile
です。
編集(2019/09/24):ログインシェルを生成せず、通常のシェルだけを生成するようにTMuxを構成するのがさらに良いようです。リンクされた質問の回答を参照してください。
tmuxは、rcだけでなく、常にシェルのプロファイルを呼び出すことがわかりました。したがって、私と同じようにbashを使用している場合は、/ etc / profileが呼び出され、path_helperが呼び出されます。
これを修正するには、次のように変更/etc/profile
します。
if [[ -z $TMUX ]] && [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
もしbashを使用している場合は、また、任意に変更export PATH=$PATH:/foo
に.bashrc
します
if [[ -z $TMUX ]]; then
export PATH=$PATH:/foo
fi
次に、ターミナル(Itermなど)を再起動します。すべてが良いはずです!