好的,我在 anaconda 环境中运行了 which python.我明白了
/home/comp/anaconda3/envs/env1/bin/python
现在,如果我启动 tmux,然后运行 source activate env1,然后运行哪个 python,我得到
/home/comp/anaconda3/bin/python
即使我确实激活了我的环境。如何让 anaconda 在 tmux 中看到相同的路径?
答案1
解决方案似乎是停用 conda 环境,然后启动 tmux,然后重新激活 tmux 内的环境。
答案2
我遇到了同样的问题,但我真的不喜欢任何解决方案,因为它们涉及每次加载到tmux
.因此,我将以下内容添加到我的.tmux.conf
:
重要编辑:此代码对我有用,因为我当前正在运行 zsh shell,这是存储我的设置的位置。您的标准 shell 可能有所不同,要查找您的 shell 位置,请使用该命令echo "$SHELL"
并将我的答案中的 替换/bin/zsh
为您自己的 shell 路径。
set -g default-command "/bin/zsh"
完成后,只需为您的.tmux.conf
文件提供资源即可激活更改。这应该允许tmux
加载您在.bash_profile
Conda 中拥有的任何设置。
答案3
此行为是由 TMux 来源~/.profile
而不是~/.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 的两个块~/.profile
。
编辑(2019/09/24):更好的方法似乎是配置 TMux,使其不会生成登录 shell,而只是生成一个普通的 shell。请参阅链接问题的答案。
答案4
启动 Tmux 会话后(没有 conda 具有任何活动环境),我会发生以下情况。
当我第一次在 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
指向正确的路径。