环境的搭建是进行开发的第一步,python因为存在python2和python3两个版本,让在建立python环境时造成不便,并且由于在Linux环境下不像Window环境安装那么友好,存在一些小坑。
本教程记录了CentOS7下安装python3.8的过程和注意事项。
一、查看系统版本
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64
查看python版本
[root@localhost ~]# python -V
Python 2.7.5
系统默认安装了Python 2.7.5
二、安装依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
如果有提示一路选择Y就可以。
安装libffi-devel依赖。
yum install libffi-devel -y
注意:如果不安装这个包,python3可以装成功,但是后面装flask、uwsgi等依赖python3中有个内置模块叫ctypes时会报错。报错ModuleNotFoundError: No module named ‘_ctypes‘。需要安装依赖包和重新编译安装python3
参看:https://blog.csdn.net/qq_36416904/article/details/79316972
三、下载python源码包
python官网https://www.python.org/ 目前python最新版本是python3.10
我不推荐使用最新版本,很多库都不支持最新版本
下载稳定版本3.8版即可
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
四、解压安装python源码包
1、解压
tar -zxvf Python-3.8.12.tgz
2、安装
进入解压后的目录进行编译和安装
[root@localhost ~]# cd Python-3.8.12/
[root@localhost Python-3.8.12]#
[root@localhost Python-3.8.12]# ./configure
[root@localhost Python-3.8.12]# make&&make install
执行完后显示安装成功
3、建立命令软链接
虽然python3.8.12安装成功了,但默认输入python还是显示是2.7版本的。如果要用python3.8.12需要输入python3即可,有时候不太方便。可以通过修改软链接的方式将默认的python指向python3.8.12。
先看一下默认的python及新安装的python3都安装在哪里
[root@localhost Python-3.8.12]# which python
/usr/bin/python
[root@localhost Python-3.8.12]# which python3
/usr/local/bin/python3
可以看到默认的python路径为/usr/bin/python,python3的路径为/usr/local/bin/python3
将python3的软链接加到python上
[root@localhost Python-3.8.12]# mv /usr/bin/python /usr/bin/python.bak
[root@localhost Python-3.8.12]# ln -s /usr/local/bin/python3 /usr/bin/python
通过python -V命令查看python版号,这时python的版本已经是3.8.12了
[root@localhost Python-3.8.12]# python -V
Python 3.8.12
pip命令也可以修改,python3.8.12默认的pip是pip3,CentOS7的python2.7默认没有安装pip.
输入pip命令的时候提示命令没有找到
[root@localhost Python-3.8.12]# pip
bash: pip: command not found...
这时也可以通过建立软链接的方式将pip命令链接到pip3上。首先看pip3命令在哪?
[root@localhost Python-3.8.12]# which pip3
/usr/local/bin/pip3
然后建立pip到pip3的软链接
[root@localhost Python-3.8.12]# ln -s /usr/local/bin/pip3 /usr/bin/pip
[root@localhost Python-3.8.12]# 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的命令在哪里
[root@localhost ~]# which python2
/usr/bin/python2
可以cd到/usr/bin目录下 通过ls -alh|grep python查看python命令的详细情况
[root@localhost bin]# ls -alh|grep python
可以看到python软连接是执行的python3命令,python2是执行的python2.7的命令
vi /usr/libexec/urlgrabber-ext-down
修改对python的依赖,修改成python2或python2.7都可以。
vi /usr/bin/yum
同样依照上图修改
修改完这两个文件后,再敲yum命令就不会报错了
至此CentOS7环境下python3.8.12已经成功安装!