【发布时间】:2020-09-03 10:19:52
【问题描述】:
我正在尝试使用 activate.d 和 deactivate.d 来修改 conda 中的 $PATH 变量,例如:
在activate.d中:
export OLD_PATH = $PATH
export PATH= "/path/to/something:$PATH"
在 deactivate.d 中:
export PATH = $OLD_PATH
unset OLD_PATH
在 base 环境中,echo $PATH 输出:
(base) $ echo $PATH
/home/myname/anaconda3/bin:/home/myname/anaconda3/condabin:/home/myname/bin:/home/myname/.local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin
然后我通过以下方式激活我的环境:
(base) $ conda activate myproject
在 myproject 环境中,echo $PATH 输出:
(myproject) $ echo $PATH
/path/to/something:/home/myname/anaconda3/envs/myproject/bin:/home/myname/anaconda3/condabin:/home/myname/bin:/home/myname/.local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin
这正是我所期望的。但是,当我尝试使用
返回 base 环境时(myproject) $ conda deactivate
我期望echo $PATH 将输出与在 base 环境中所做的相同的事情。但是,我得到的是:
(base) $ echo $PATH
/home/myname/anaconda3/envs/myproject/bin:/home/myname/anaconda3/condabin:/home/myname/bin:/home/myname/.local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin
注意第一个路径是/home/myname/anaconda3/envs/myproject/bin,而不是/home/myname/anaconda3/bin。
那里发生了什么?
【问题讨论】: