Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

Linux 双Python 环境 踩坑记录

$
0
0
原创声明: 本文为原创文章 如需转载需要在文章最开始显示本文 原始链接 为了更好的阅读体验,请回源站查看文章。有任何修改、订正只会在源站体现

我们采用的linux server通常会自带一个 python 环境,此时如果因为版本老自己升级,或者要安装anaconda,就会让自己的server出现双python环境的情况。

本次跳坑是后者,因为要运行的code需要各种ML库等等,所以就干脆装了一个anaconda,结果就一步步踏进深渊。。。

0 环境检查 90%: <spanclass="hljs-variable">$ </span>whichpython <spanclass="hljs-variable">$ </span>whichpip <spanclass="hljs-variable">$ </span>python -<spanclass="hljs-constant">V</span> <spanclass="hljs-variable">$ </span>pip -<spanclass="hljs-constant">V</span>

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

剩下9% : <spanclass="hljs-variable">$ </span>/usr/bin/python -<spanclass="hljs-constant">V</span>

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

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

<spanclass="hljs-comment">#!/usr/bin/python</span> <spanclass="hljs-comment"># 有些.py文件首行会指定运行python目录,然后shell运行</span> 还有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


Viewing all articles
Browse latest Browse all 11063

Trending Articles