Centos7下已自动安装Python2.7.5,but现在经常会出现Python2和Python3兼容使用的情况,所以我现在记录下安装过程。 上一篇文章我写过Centos6.5下升级Python2.7的操作Centos下升级Python 本次操作与上一篇有所相识,但更为简易,下面请跟我一起操作

预准备

由于Centos需要提前安装Sqlite数据库,否则之后Python无法正常导入sqlite3,因此建议在升级Python前预先安装Sqlite数据库 没有安装readline-devel可能导致无法使用键盘的上下左右键

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

二、下载欲安装Python3安装包

可以去官网找最新安装包 https://www.python.org/downloads/ 本处我将下载 Python3.7进行安装使用

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz

三、编译安装

PS:这里提前预警一个Python3.7版本的依赖安装,如果是装Python3.6的可忽略以下该步操作

异常提示 ModuleNotFoundError: No module named ‘_ctypes’
yum install libffi-devel -y

提前先安装好openssl 以免出现 import _ssl 异常

wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1q.tar.gz
tar zxf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
./config --prefix=/usr/local/openssl shared zlib
make && make install

设置环境变量 LD_LIBRARY_PATH

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >>  /etc/profile
source /etc/profile

开始编译安装

tar xvf Python-3.7.0.tar.xz 
cd Python-3.7.0/

./configure \
  prefix=/usr/local/python3 \
	--enable-optimizations \
	--with-openssl=/usr/local/openssl \
	--with-openssl-rpath=auto \
	--enable-shared

make && make install

测试安装情况

/usr/local/python3/bin/python3 -V

PS: 如果出现找不到 libpython3.7m.so.1.0 链接库的问题的话可以尝试搜索下并接入环境变量中

/usr/local/python3/bin/python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
# 尝试查找本地,若没有则需要安装
# sudo find / -name libpython3.7m.so.1.0
/data/Python-3.7.10/libpython3.7m.so.1.0
/usr/local/python3/lib/libpython3.7m.so.1.0
# 设置环境变量
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3/lib" >>  /etc/profile
source /etc/profile

四、修改python命令软链及vim配置

安装成功后,我们需要把vim配置改为Python2.7.5,以恢复yum的使用 备份python的软链接,修改成python3的,方便我们使用

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/python3/bin/python3 /usr/bin/python

Python3自带pip,只需要增加一个软链接即可

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3/bin/pyvenv /usr/bin/pyvenv3

修改vim配置

vi /usr/bin/yum
# 修改 #!/usr/bin/python 为 #!/usr/bin/python2.7
#!/usr/bin/python2.7 

import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
		......

同样的操作, vi /usr/libexec/urlgrabber-ext-down vi /usr/bin/yumdownloader vi /usr/bin/repoquery 文件里面的#! /usr/bin/python 也要修改为#! /usr/bin/python2.7

OK! 至此,安装完成,谨以此文做一个记录