如何在 CentOS 7 上安裝 Python 3

scriptgeeker發表於2019-02-16

當前最新的 CentOS 7.5 預設安裝的是 Python 2.7.5,並且預設的官方 yum 源中不提供 Python 3 的安裝包。這裡主要介紹兩種在 CentOS 7 中安裝 Python 3 的方法。

使用 SCL 安裝

1. 啟用 SCL

SCL 是一個社群專案,它可以在同一系統上構建,安裝和使用多個版本的軟體,而不會影響系統預設軟體包。

yum -y install centos-release-scl

2. 安裝 Python

現在我們可以訪問SCL儲存庫,我們可以安裝我們需要的任何Python 3.x版本,目前最新版本為 Python 3.6。

yum -y install rh-python36

3. 修改環境變數

要訪問Python 3.6,需要使用 scl 工具為系統環境變數新增自定義路徑。

scl enable rh-python36 bash

4. 檢視安裝資訊

檢視 Python 環境路徑:

[root@localhost ~]# which python
/opt/rh/rh-python36/root/usr/bin/python

檢視 Python 當前版本:

[root@localhost ~]# python --version
Python 3.6.3

編譯原始碼安裝

1. 基本工具

  • wget(網路下載工具)
  • gcc(基於C/C++的編譯器)
  • make(工程化編譯工具)
yum -y install wget gcc make

2. 安裝依賴

  • bzip2-devel(解決 import bz2 報錯)
  • ncurses-devel(解決 import curses 報錯)
  • sqlite-devel(解決 import sqlite3 報錯)
  • gdbm-devel(解決 _dbm _gdbm 缺失)
  • xz-devel(解決 _lzma 缺失)
  • tk-devel(解決 _tkinter 缺失)
  • readline-devel(解決 readline 缺失)
  • libffi-devel(解決 _ctypes 缺失)
yum -y install bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel readline-devel libffi-devel

3. 編譯原始碼

下載原始碼包:

wget -c https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

解壓原始碼包:

tar -zxvf Python-3.7.0.tgz

進入解壓目錄:

[root@localhost ~]# cd Python-3.7.0
[root@localhost Python-3.7.0]# 

配置安裝目錄:

./configure prefix=/usr/local/python3

編譯並安裝:

make && make install

4. 新增連結

在使用者環境變數目錄下,建立一個啟動程式的軟連結。

ln -s /usr/local/python3/bin/python3.7 /usr/local/bin/python

5. 檢視版本

[root@localhost ~]# python --version
Python 3.7.0

SLC 與編譯安裝各有優缺點。

SLC 方式安裝更簡單,不需要考慮依賴的問題。而且預設安裝在 /opt 目錄下(相當於 Windows 中 D:SoftWare),不影響系統環境,直接 rm -rf 也沒關係。侷限在於 SLC 只提供 python3.4 – python3.6 的版本,並且會修改 $PATH 的路徑。

編譯安裝則可以選擇任意 python 的版本(只要能下載的到),但是編譯與安裝過程中會遇到很多 No module named 錯誤。如果再將啟動程式軟連結新增到系統環境變數目錄(/usr/bin)下,依賴 python2 的 yum(#!/usr/bin/python)工具就不能使用了。

相關文章