Linux下多版本python共存时,默认执行路径修改方法
遇到的问题和环境是这样:首先workspace上存在一个Python2.7和一个Python3.5,其中Python3.5是理想的运行环境,有很多自定义模块,运行代码时需要这个环境。原本默认是在这个环境下跑的,后来安装了一个叫miniconda3的东西,里面自带一个Python3.7环境,于是问题来了,所有执行程序全部变成了使用这个新的Python3.7环境来跑,这个新环境没有安装和适配需要的模块,导致程序全部报错。
现在要做的是将环境从Python3.7改回原来的Python3.5。
通过which python得知当前bash里默认跑的Python环境的路径位置。
我们得知,每个程序在跑的时候会根据~/.bashrc 或 ~/.zshrc中的脚本配置的路径来按顺序寻找可能的路径。也就是说你通过 export方法https://blog.csdn.net/Kevinhanser/article/details/79352109来更新你的环境变量时,是即时有效的,这个方法可以立即解决你某个程序环境错误的问题,立即使用你想要的环境(当然你要知道你需要的环境的正确路径才能加到PATH中)
当然还有别的方法一劳永逸的更改环境变量,你可以将你需要的正确路径写入~/.bashrc 中,当然这个文件你肯定不陌生,里面添加了各种程序的PATH以及某些自定义的缩写。PATH的组成形式类似字符串的+=,他会将某个路径,如PATH=/home/tuotu/bin:$PATH的方式,不断延长这个字符串,这个串以:为分隔符,每次按顺序便利该串的每一个路径,遇到能用的就会使用这个路径指向的环境。当然你也可以反过来写,$PATH 写新路径的前面。这样相当于将新路经的位置放在了相对后面的位置。如过各个路径所使用的环境不冲突的话当然无所谓,但是此处是多个Python的存在,语法都差不多,只是内容不一样了,所以要严格区分。目前的情况是miniconda3中Python3.7的路径被放到了PATH中相对较前的位置。为了解决这个问题,我们应该把正确的路径放到Python3.7的前面,使系统先遍历到这个路径,而不是Python3.7.
之后我更改了路径,无意中在~/.bashrc把正确的路径放到了miniconda3的PATH之前,这导致我设定的路径直接“无效”,因为这毕竟是一个脚本,按顺序执行,先将正确的路径放到了前面,后面就会被错误路径盖住,导致正确路径失效,错误路径被读入且使用。所以编辑脚本的好习惯还是将最新的最需要的PATH放到脚本的末尾部分~问题解决