- 查看系统版本
# 查看系统版本
cat /etc/centos-release
> CentOS Linux release 7.2.1511 (Core)
uname -a
> Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# 查看python版本
python -V
> Python 2.7.5
- 安装依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
# 安装libffi-devel依赖
yum install libffi-devel -y
# 如果不安装这个包,python3可以装成功
# 但是后面装flask、uwsgi等依赖python3中有个内置模块叫ctypes时会报错。
# 报错ModuleNotFoundError: No module named ‘_ctypes‘。需要安装依赖包和重新编译安装python3
- 下载python源码包
# 下载稳定版本3.8版
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
- 解压安装python源码包
# 进入解压后的目录进行编译和安装
cd Python-3.8.12/
./configure
make&&make install
5. 建立软链接
虽然python3.8.12安装成功了,但默认输入python还是显示是2.7版本的。
如果要用python3.8.12需要输入python3即可,有时候不太方便。
可以通过修改软链接的方式将默认的python指向python3.8.12。
# 查看默认的python及新安装的python3安装在哪里
which python
/bin/python
which python3
/usr/local/bin/python3
# 将python3的软链接加到python上
mv /bin/python /bin/python.bak
ln -s /usr/local/bin/python3 /bin/python
# 查看python版本
python -V
> Python 3.8.12
# python3.8.12默认的pip是pip3
# CentOS7的python2.7默认没有安装pip.
# 输入pip命令的时候提示命令没有找到
pip
> bash: pip: command not found...
# 建立软链接的方式将pip命令链接到pip3上
which pip3
> /usr/local/bin/pip3
# 建立pip到pip3的软链接
ln -s /usr/local/bin/pip3 /bin/pip
pip -V
> pip 21.1.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
- 配置yum
安装python3改完软链接以后发现yum命令报错了,yum是依赖python2.7把python改成了3.8了,所以报错了
[root@localhost Python-3.8.12]# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
可以修改yum里对python2的依赖即可。虽然安装了python3但是系统里python2依旧还在系统里,可以通过python2来指定用python2.7的命令
# 查看python2的命令
which python2
/bin/python2
cd /bin
# 查看python命令的详细情况
ls -alh|grep python
vi /usr/libexec/urlgrabber-ext-down
修改对python的依赖,修改成python2或python2.7都可以
vi /usr/bin/yum
修改完这两个文件后,再敲yum命令就不会报错了