[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 上勉強頂一下了~
(本頁面已被瀏覽過 344 次)