[Linux] 在 CentOS 6 上編譯 Python 3.6

[Linux] 在 CentOS 6 上編譯 Python 3.6

最近想在 CentOS 6 上編譯最新的 Python 3.9,

發現會遇到不少問題,

像是 yum repo 上的 OpenSSL 版本太舊 (得手動編譯 LibreSSL),

而 libffi-devel 的版本似乎也太舊…

 

退而求其次,如果是編譯 Python 3.6 的話,

就可以在只使用 yum repo 現有的 openssl-devel 和 libffi-devel 的情況下,

就能編譯並安裝 Python 3.6 了:

yum -y install openssl-devel libffi-devel
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar xvf Python-3.6.8.tgz
cd Python-*
./configure
make -j2
make install

 

編譯好後,確定一下它可以匯入 ssl 和 ctypes 兩個套件,

如果不成功的話,表示 OpenSSL 和 libffi 的部分有問題

(這兩個東西在 Python 3.9 讓我搞好久…):

root@localhost ~ # python

Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import ssl
>>> import ctypes
>>>

 

裝好的 python3 會在 /usr/local/bin 目錄下:

root@localhost ~ # ll /usr/local/bin/py*

lrwxrwxrwx. 1 root root        8 Feb 28 08:05 /usr/local/bin/pydoc3 -> pydoc3.6
-rwxr-xr-x. 1 root root       84 Feb 28 08:05 /usr/local/bin/pydoc3.6
lrwxrwxrwx. 1 root root        9 Feb 28 08:05 /usr/local/bin/python3 -> python3.6
lrwxrwxrwx. 1 root root       16 Feb 28 08:05 /usr/local/bin/python3-config -> python3.6-config
-rwxr-xr-x. 2 root root 10030878 Feb 28 08:00 /usr/local/bin/python3.6
lrwxrwxrwx. 1 root root       17 Feb 28 08:05 /usr/local/bin/python3.6-config -> python3.6m-config
-rwxr-xr-x. 2 root root 10030878 Feb 28 08:00 /usr/local/bin/python3.6m
-rwxr-xr-x. 1 root root     3083 Feb 28 08:05 /usr/local/bin/python3.6m-config
lrwxrwxrwx. 1 root root       10 Feb 28 08:05 /usr/local/bin/pyvenv -> pyvenv-3.6
-rwxr-xr-x. 1 root root      441 Feb 28 08:05 /usr/local/bin/pyvenv-3.6

 

不追求最新版的 Python 3 的話,

這個方法可以在 CentOS 6 上勉強頂一下了~

(本頁面已被瀏覽過 347 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料