为 CentOS7 安装最新的Python程序

人生苦短,我用Python!

请注意,本文编写于 120 天前,最后修改于 63 天前,其中某些信息可能已经过时。

CentOS 7 自带的Python是 Python2,并且yum 源中并没有提供最新的 python3 程序,我又想使用它,怎么办呢?
手动编译安装它!

Step1. 查看系统当前python程序的位置

#which python
/usr/bin/python 

可以知道我们的python在 /usr/bin目录中

Step2. 安装编译需要的依赖

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

Step3. 安装下载工具Wget

sudo yum install wget -y

Step4.下载最新的源码包

当前最新的python版本为Python 3.7.4,

我下载的是标题为XZ compressed source tarball的文件

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

Step5. 编译安装

  • 解压
# 使用xz和tar解包刚才下载的xxx.tar.xz
xz -d Python-3.7.4.tar.xz
tar -xvf Python-3.7.4.tar
# 进入解压后的目录,
cd Python-3.7.4
  • 指定安装位置
./configure prefix=/usr/local/python37
# 为了避免和系统里原来的软件产生冲突,我们需要自定义安装位置,
# 这里我选择安装到/usr/local/python37里
  • 开始编译安装
sudo make
sudo make install

如果最后没报错,就表示正确安装了,在/usr/local/目录下就会有python37目录

Step6. 添加软链接

做到到这里,读者们可能会有疑问,“我不是已经安装好了吗,怎么还要搞这个软链接?”,

因为Linux系统把系统自带的能直接在系统任何位置执行的的软件都放在了/usr/bin下面,也就是之前我们查看的系统自带的python程序的位置,然而我们刚才手动把程序安装到了/usr/local/python37这个目录,这种情况下/usr/bin/usr/local/bin下是没有python3的,此时我们直接执行python3是没有反应的,所以还需要最后一步,在/usr/local/bin/给它添加软连接(相当于windows中把程序所在目录添加到Path,然后我们就可以在任意位置通过cmd打开软件了)

注:
/usr/local:用户级程序目录
/usr/:系统级程序目录
/usr/local/bin&/usr/bin:系统默认存放程序的可执行文件的地方,还有个/sbin目录里的可执行文件只能被root用户执行
# 添加python3的软连接
sudo ln -s /usr/local/python37/bin/python3.7 /usr/local/bin/python37
#添加pip3的软连接
sudo ln -s /usr/local/python37/bin/pip3.7 /usr/local/bin/pip37
# 
# 如果你使用pip3安装了一个程序,但安装后无法直接执行它,可能是因为没有相应的软连接,
# 这时我们查看一下安装目录下的软件
ls -lh /usr/local/python37/bin/ 
# 然后依照前面的格式添加一个软连接就好了

Other. 更改pip源为国内源

pip下载超时/速度太慢?,不用担心,我们可以把pip的源改成tuna的

# 依次执行下面命令
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

END


添加新评论

评论列表