- 查看系统版本
# 查看系统版本 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命令就不会报错了