不同就对了。首先,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前面的目录指向不同的文件夹。
不同就对了。
首先,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前面的目录指向不同的文件夹。