linux不同conda环境中的 /usr/bin/env 中的PATH不同,这是为什么?

Eso
  • 5
广东新手上路,请多包涵

回复
阅读 682
2 个回答
ssseerr999
  • 1.2k
✓ 已被采纳

不同就对了。

首先,sh就是根据PATH这个环境变量设置的路径,按顺序去这些路径下去找可执行文件。

比如现在,我的电脑PATH是这样的:
PATH=/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

假如 python 这个文件放在/sbin下,然后我在终端里执行python,就可以正常执行,因为python在在PATH的目录里。
假如 python 这个文件不在PATH里面的任何目录,这个时候我去执行python,就会提示 command not found: python
假如 python 这个文件同时存在 /bin 和 /usr/bin 目录下,这个时候执行python,这个时候就会执行/bin/python这个目录下的文件,因为/bin这个目录,在PATH里面是排在前面的,sh在/bin目录下找到python之后,就不会再去后面的目录去找这个文件了。


现在这个问题,conda是怎么做到切换和激活虚拟环境的,其实就是修改了终端的PATH环境变量,在PATH前面增加了一个conda的目录,这个目录里面会包含一些python/pip.不同的目录对应不同版本的python。所以conda切换环境的时候,PATH前面的目录指向不同的文件夹。

不同conda环境

PATH 是环境很重要得一部分。不同得环境当然可以有不同的 PATH ,不同的 PATH 里才可以放不同的 python

宣传栏