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