前言:
工作中,常常要在新的linux生产服务器中安装自己的集成python环境,这种情况下有一点需要注意:不能覆盖生产服务器中的python环境(也就是自己的python环境要和系统的python环境分开)。一般情况下系统自带的python环境一般为2,而我们需要的python环境一般为3。并且生产服务器一般是安全等级比较高的,一般是断网的状态,这也就意味着所有的安装操作都要手动进行(PS:一行指令的事就此变成漫长的折腾)。
为了顺利完成安装python3的环境,就需要你事先做好准备,不然把生产环境搞出问题,那就等着“祭天”吧。
1、准备
首先你要了解目前系统中python环境的情况,即有哪些python环境。
whereis python
#正常环境中只有默认的python2环境,也就是下图中红色框框中的内容。
其次要看下对应的系统变量配置文件(看下有哪些配置,便于后续安装过程中发生意外进行还原)
vi ~/.bashrc
#正常情况下,如下图所示。
2、操作
然后开始安装Anaconda,这里需要提醒下,如果对python版本有要求一定要事先进行评估,选择相对应的python版本,如3.6,3.7。这样避免后续因为一些包与相关python版本不兼容,出现各种问题,导致相关功能无法正常使用。这样就很难堪了(毕竟所处的生产环境是高危环境,安装各种包很麻烦,且做这些安装环境的操作要十分谨慎)
下载对应python版本的anacanda包
安装
bash Anaconda3-5.2.0-Linux-x86_64.sh
中间会碰到如下情景,这里是提示是否要将anaconda对应变量添加到/root/.bashrc中。我们选择yes。(这里应该是追加的形式添加,应该不可能是覆盖。感兴趣的小伙伴可以做个实验)
安装完成后再看/root/.bashrc。这里多了一个anaconda的环境变量。
安装完成后,由于anaconda的bin中也有python指令,而我们系统默认的python也是通过python指令执行的,如果不做处理,anaconda的python指令就会覆盖系统的python。也就是后续我们执行python将会执行anaconda的python。所以需要先到anaconda/bin目录下将python指令更改为其他名称。
mv python py3
然后还需要更新下/root/.bashrc,此时相关的环境变量才能生效。
source /root/.bashrc
然后命令行输入python看看是否是对应的系统默认的python2
输入python3看看是否是对应anaconda的python3
正常情况下应该没问题。
但是到这里,如果你再去执行pip,conda等指令会发现如下错误:
pip/conda bad interpreter: /home/username/anaconda/bin/python: no such file or directory
这是由于我们更改了anaconda的指令python,而conda,pip等指令时依赖于anaconda的python指令的,所以需要你到anaconda/bin目录下通过vi conda,vi pip指令打开相关文件进行修改。如下图所示将红框中的python改为对应的python3(anaconda对应的python解释器的别称)即可。
然后再试下pip,conda指令,就OK了。
3、离线安装python第三方包的方法
1、参考:https://blog.csdn.net/qq_16633405/article/details/97530620
除此之外还有一些方法:
考虑到没网的状态,所以我们可以模拟一个有网的实验环境,然后在实验环境中把需要的包先装上,然后再将实验环境anaconda/lib/python3/site-package/ 目录下新安装的第三方包放到生产环境对应的目录下就可以了。或者直接在实验环境中把所有需要的第三方包全打包然后一键转移到生产环境等。
总结
linux生产服务器安装新的环境最麻烦的工作。风险太高,整个操作必须谨慎谨慎再谨慎,如果有实验环境,就先在实验环境操作,把坑踩完后再去生产环境操作,操作的时候还要注意一些关键文件的备份,做的可回溯。总之,对于生产环境,再小心也不为过!
参考:https://blog.csdn.net/qq_16633405/article/details/97530620