预计所需阅读时间:5分钟

CentOS 7的系统默认自带Python 2.7的版本,而且自带的软件包管理系统YUM也是用Python 2来运行的。目前Python 2的支持已经在2020年1月1日结束,要想在服务器CentOS系统上运行最新与Python相关的代码都要用到Python 3。

一、卸载Anaconda

服务器安装过Anaconda,当时想它集成了比较多包,这样服务器也可以跑很多程序,但后来自己还是主要在本机跑各种各样的程序,也安装了各种环境,体积接近50G。服务器的空间没本地电脑那么大,而且定位也与本地不一样,服务器跑的应该是要长时间运行的代码,但因为性能有限,比本地的算力还要低,所以最大的优势应该是跑爬虫的代码。

于是卸载了Anaconda,减少对服务器空间的占用。其方法如下:

1.在系统里找到anaconda安装时所有的文件夹,默认是安装在用户主目录之下,如果是root用户就在/root/之下,直接用删除命令rm -rf ~/anaconda

2.编辑用户目录下bash运行配置文件vi ~/.bashrc

对conda initialize这段内容用#进行注释

3.要使其立即生效,执行source ~/.bashrc

4.关闭连接要服务器的终端,重新连接上服务器终端

整个卸载就完成,过程还是很快捷的。

二、卸载所有Python3

之前不是很懂CentOS几种安装方法,结果是装过几个版本的Python,3.6、3.7、3.8都装过,还同时存在3.6与3.8版本。服务器上的Python没有必要追求最新的,也因为跑不动Tensorflow的深度学习框架,所以也必要装3.6,所以还是装比较通用的3.7版本最好。

对过以下命令即可完全卸载所有版本Python 3

# 卸载所有pyhton3,请耐心等待
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
# 删除所有残余文件,请耐心等待
whereis python3 |xargs rm -frv
# 查看现有安装的python,还有自带Python 2在
whereis python

三、重新编译安装Python3.7

1安装Python3相关包,其中libffi-devel很关键,因为只有3.7才会用到这个包,不安装的话,编译阶段会出错。

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel

2.安装pip,CentOS默认没有pip,但也可能因为装了其它程序所以也有安装。

#运行这个命令添加epel扩展源 
yum -y install epel-release 
#安装pip 
yum install python-pip

3.安装wget,下载远程文件。

pip install wget

4.下载Python3.7的源码包

# 下载
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
# 解压缩
tar -zxvf Python-3.7.9.tgz
# 切换目录
cd Python-3.7.9

5.编译并安装。

# 编译安装位置,请耐心等待
./configure prefix=/usr/local/python3
# 编译优化,请耐心等待,最后结果没成功影响不大
./configure --enable-optimizations
# 编译安装
make && make install

6.添加软链接,这点跟Windows安装软件那样最后会创建快捷方式到开始菜单。

# 创建python3.7的链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3.7
# 创建python3的链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
# 备份旧连接
mv /usr/bin/python /usr/bin/python.backup
# 删除旧链接
rm -rf /usr/bin/python
# 创建python的链接,改变默认运行安装的版本
ln -s /usr/local/bin/python3 /usr/bin/python
# 创建pip3.7的链接
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3.7
# 创建pip3的链接
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
# 备份旧连接
mv /usr/bin/pip /usr/bin/pip.backup
# 删除旧链接
rm -rf /usr/bin/pip
# 创建pip的链接,改变默认运行安装的版本
ln -s /usr/local/bin/pip3 /usr/bin/pip

7. 更改yum配置,因为它要用到python2才能执行,否则会导致yum不能正常使用。不管安装 python3的那个版本,都必须修改以下配置文件。

vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2