2.在 Unix 平臺上使用 Python

2.1.獲得並安裝 Python 的最新版本

2.1.1.在 Linux 上

在大多數 Linux 發行版上會預先安裝 Python,並作為一個套件提供給所有其他使用者。但是發行版提供的套件可能沒有你想要使用的某些功能,這時你可以選擇從原始碼編譯最新版本的 Python。

如果最新版的 Python 沒有預先安裝,並且不在發行版提供的儲存庫 (repository) 中,你可以輕鬆地為自己使用的發行版建立套件。參閱以下連結:

2.1.1.1.安裝 IDLE

在某些情況下,IDLE 可能不會包含在你的 Python 安裝中。

  • 對於 Debian 和 Ubuntu 使用者:

    sudoaptupdatesudoaptinstallidle
  • 對於 Fedora、RHEL 和 CentOS 使用者:

    sudodnfinstallpython3-idle
  • 對於 SUSE 和 OpenSUSE 使用者:

    sudozypperinstallpython3-idle
  • 對於 Alpine Linux 使用者:

    sudoapkaddpython3-idle

2.1.2.在 FreeBSD 和 OpenBSD 上

  • FreeBSD 使用者應使用以下命令增加套件:

    pkginstallpython3
  • OpenBSD 使用者應使用以下命令增加套件:

    pkg_add-rpythonpkg_addftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insertyourarchitecturehere>/python-<version>.tgz

    例如 i386 使用者要取得 Python 2.5.1 的可用版本:

    pkg_addftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz

2.2.建置 Python

如果你想自己編譯 CPython,首先要做的是取得原始碼。你可以下載最新版本的原始碼,也可以直接提取最新的clone(克隆)。(如果你想要貢獻修補程式碼,也會需要一份 clone。)

建置過程由幾個常用命令組成:

./configuremakemakeinstall

特定 Unix 平臺的配置選項和注意事項通常會詳細地記錄在 Python 原始碼樹 (source tree) 根目錄下的README.rst 檔案中。

警告

makeinstall 可以覆蓋或偽裝python3 二進位制檔案。因此,建議使用makealtinstall 而不是makeinstall,因為它只安裝exec_prefix/bin/pythonversion

2.3.與 Python 相關的路徑和檔案

這取決於本地安裝慣例;prefixexec_prefix 相依於安裝方式,應被直譯來讓 GNU 軟體使用;它們也可能相同。

例如,在大多數 Linux 系統上,兩者的預設值皆是/usr

檔案/目錄

含意

exec_prefix/bin/python3

直譯器的推薦位置。

prefix/lib/pythonversionexec_prefix/lib/pythonversion

包含標準模組目錄的推薦位置。

prefix/include/pythonversionexec_prefix/include/pythonversion

包含開發 Python 擴充套件和嵌入直譯器所需 include 檔案之目錄的推薦位置。

2.4.雜項

要在 Unix 上使用 Python 腳本,你需要讓他們是可執行的 (executable),例如用

$chmod+xscript

並在腳本的頂部放一個合適的 Shebang。以下通常是個好選擇:

#!/usr/bin/env python3

將在整個PATH 中搜尋 Python 直譯器。然而某些 Unix 系統可能沒有env 命令,因此你可能需要將/usr/bin/python3 寫死 (hardcode) 成直譯器路徑。

要在 Python 腳本中使用 shell 命令,請見subprocess 模組。

2.5.客製化 OpenSSL

  1. 要使用你所選擇發行商 (vendor) 的 OpenSSL 配置和系統信任儲存區 (system trust store),請找到包含openssl.cnf 檔案的目錄或位於/etc 的符號連結 (symlink)。在大多數發行版上,該檔案會是在/etc/ssl 或者/etc/pki/tls 中。該目錄亦應包含一個cert.pem 檔案和/或一個certs 目錄。

    $find/etc/-nameopenssl.cnf-printf"%h\n"/etc/ssl
  2. 下載、建置並安裝 OpenSSL。請確保你使用install_sw 而不是installinstall_sw 的目標不會覆蓋openssl.cnf

    $curl-Ohttps://www.openssl.org/source/openssl-VERSION.tar.gz$tarxzfopenssl-VERSION$pushdopenssl-VERSION$./config\--prefix=/usr/local/custom-openssl\--libdir=lib\--openssldir=/etc/ssl$make-j1depend$make-j8$makeinstall_sw$popd
  3. 使用客製化 OpenSSL 建置 Python(參見配置--with-openssl--with-openssl-rpath 選項)

    $pushdpython-3.x.x$./configure-C\--with-openssl=/usr/local/custom-openssl\--with-openssl-rpath=auto\--prefix=/usr/local/python-3.x.x$make-j8$makealtinstall

備註

OpenSSL 的修補釋出版 (patch releases) 具有向後相容的 ABI。你不需要重新編譯 Python 來更新 OpenSSL。使用一個新的版本來替代客製化 OpenSSL 安裝版就可以了。