Linux 双Python 环境 踩坑记录

来源:互联网 发布:车牌照识别 c语言 编辑:程序博客网 时间:2024/06/13 08:36

我们采用的linux server通常会自带一个python环境,此时如果因为版本老自己升级,或者要安装anaconda,就会让自己的server出现双python环境的情况。
本次跳坑是后者,因为要运行的code需要各种ML库等等,所以就干脆装了一个anaconda,结果就一步步踏进深渊。。。

0 环境检查

  • 90%:
$ which python$ which pip$ python -V$ pip -V

分别在普通用户和root用户下,运行这四条command,查看python版本及路径,如果两个用户下四条命令对应的都是你新安装的python,那你90%可能性不会被双python困扰。如果此处不如我们所愿,请先参考 1 配置环境变量,解决90% 完成配置。

  • 剩下9%
$ /usr/bin/python -V

如果上面检查已经通过,你还是碰到问题,检查一下这个目录中的python,如果并非你手动安装的新版,那么请继续往下看 2 针对9%

猜想:为什么所有环境变量都指向新的python,还有可能调用到老python,进而引发一系列问题?猜想是linux下有些python安装脚本(.py)是采用首行指定运行环境来运行的

#!/usr/bin/python# 有些.py文件首行会指定运行python目录,然后shell运行
  • 还有1%:我也不清楚是什么情况,你再搜搜其他解决方案

1 配置环境变量,解决90%

类似windows配置的环境变量,linux同样有自己的环境变量,而且,每个用户各有不同,所以,安装完python后,首先要做的就是确认环境,如果上面4条检查命令不能全部对应到新python,那么请手动将新版本python添加到环境变量中:

普通用户:

  • 进入 用户目录 cd ~
  • 修改 .bashrc,在文件最后添加一行(根据新python实际目录来修改)
    export PATH="/usr/lib/anaconda2/bin:$PATH"
  • $ source ~/.bashrc使设置生效

root 用户:

  • sudo su进入root 用户
  • 重复普通用户步骤

检查环境:

  • 再检查一遍环境确认设置生效,顺利的话此时应该通过“90”检查了

2 针对9%

如果上面配置全都设置好,还是在安装依赖时有各种问题,此时,我们手动将/usr/bin/python指向的python改一下

  • 备份原先文件/usr/bin/python
  • 在此处手动创建一个指向新python的软连接
    sudo ln -s /usr/lib/anaconda2/bin/python /usr/local/bin/python
  • 去试验问题是否解决
  • 再把此处修改改回来

强烈建议此处的软连接在解决问题后再改回来,毕竟这是系统默认python,如果不该回来可能有一些莫名其妙的问题

3 剩下1%

抱歉我也无能为力。。。God bless you

end

0 0