Python: CentOS7 安裝 Python (Source)




# sys info: CentOS7



安裝 Python by Source

步驟如下:

  1. Download Source
  2. Install Modules
  3. Configure
  4. Compile
  5. Install
  6. Create Soft Link

1. Download Source

1
wget <a href="https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz" target="_blank" rel="noreferrer noopener">https://www.python.org/ftp/<strong><em>python-version.tgz</em></strong></a>

可直接去官網下載 Source。

下載之後解壓縮拿到的 tgz 檔:

1
tar -zxvf <a href="https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz" target="_blank" rel="noreferrer noopener"><strong><em>python-version.tgz</em></strong></a>

2. Install Modules

在開始 ./configure 之前,有些 Module 要先裝上。

以下 Module 是我在安裝時缺少的,若不確定的話,保險起見可都先裝。

安裝 Compiler 套件:

1
yum install make gcc gcc-c++
1
2
# OR
yum group install "Development Tools"

安裝 Module: zlib-devel

安裝過程中遇到 Error,原來是缺乏 zlib-devel

1
yum -y install zlib-devel

(此處原內容移除,可參考註 1)

安裝 Module: readline*

為了方便在 command line 上使用方向鍵:

1
yum -y install readline*

安裝 Module: libffi-devel

後來又跳出 ModuleNotFoundError: No module named ‘_ctypes’

原來是 python 3.7 新加入的相依套件,因此要再補上:

1
yum -y install libffi-devel

安裝 Module: openssl-devel

有些套件需要 pip3 安裝,為了避免後續的連線問題,可以順手安裝這個套件。

1
yum -y install openssl-devel

安裝 Module: tk-devel

若沒有安裝,則顯示圖形介面會有問題。

1
yum -y install tk-devel

安裝 Module: sqlite

若沒有安裝,會影響 SQL 相關的功能。

1
yum -y install sqlite-devel

3. Configure

不多說,就是 configure。

1
./configure

4. Compile

1
make

一般情況下會再測試一次 make 出來的結果:

1
make test

不過相當耗時,考慮到這是官方出的 Source,可以跳過這一步。




Note

如果是已經 make 之後再重新補上套件、調整檔案,建議可以 make clean 後再重新 make & make install

1
make clean

重新 make & make install

1
2
3
make

make install



5. Install

1
make install

這樣就安裝完成拉,剩下的就是加上 link 讓輸入 python3 可以成功執行的步驟。


安裝完成之後,為了讓你輸入指令就能執行 python (以及路徑管理的方便),要在 /usr/bin 建立一個捷徑。

輸入:

1
ln -s /path/to/original/python /usr/bin/python3

這樣就完成了「在 /usr/bin 中建立捷徑」的動作了。




註:

註 1:有關 zlib 的安裝內容因後來在 CentOS 7 上 改裝 zlib-devel 之後,不做以下也可以順利安裝,因此移除原內容:

然後調整一下 Setup 檔:

1
vi module/setup

把這行去除註解:

1
2
3
4
5
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 

#去除註解

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz



REF {#ref}:

  1. https://www.python.org/downloads/source/
  2. https://passingcuriosity.com/2015/installing-python-from-source/
  3. https://blog.csdn.net/u014749862/article/details/54430022
  4. https://blog.csdn.net/qq_36416904/article/details/79316972
  5. https://askubuntu.com/questions/108771/what-is-the-difference-between-a-hard-link-and-a-symbolic-link
Licensed under CC BY-NC-SA 4.0
最後更新 2024-09-20 05:48

主題 StackJimmy 設計