2. 在 Unix 平臺上使用 Python¶
2.1. 獲得並安裝 Python 的最新版本¶
2.1.1. 在 Linux 上¶
Python comes preinstalled on most Linux distributions, and is available as a package on all others. However there are certain features you might want to use that are not available on your distro's package. You can compile the latest version of Python from source.
In the event that the latest version of Python doesn't come preinstalled and isn't in the repositories as well, you can make packages for your own distro. Have a look at the following links:
也參考
- https://www.debian.org/doc/manuals/maint-guide/first.en.html
對於 Debian 用戶
- https://en.opensuse.org/Portal:Packaging
對於 OpenSuse 用戶
- https://docs.fedoraproject.org/en-US/package-maintainers/Packaging_Tutorial_GNU_Hello/
對於 Fedora 用戶
- https://slackbook.org/html/package-management-making-packages.html
對於 Slackware 用戶
2.1.2. 在 FreeBSD 和 OpenBSD 上¶
FreeBSD 用戶應使用以下命令增加套件:
pkg install python3
OpenBSD 用戶應使用以下命令增加套件:
pkg_add -r python pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz
例如 i386 使用者要獲取 Python 2.5.1 的可用版本:
pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
2.2. 建置 Python¶
如果你想自己編譯 CPython,首先要做的是獲取原始碼。你可以下載最新版本的原始碼,也可以直接提取最新的 clone(克隆)。(如果你想要貢獻修補程式碼,也會需要一份 clone。)
建置過程由幾個常用命令組成:
./configure
make
make install
特定 Unix 平臺的配置選項和注意事項通常會詳細地記錄在 Python 原始碼樹 (source tree) 根目錄下的 README.rst 檔案中。
警告
make install
可以覆蓋或偽裝 python3
二進位制檔案。因此,建議使用 make altinstall
而不是 make install
,因為它只安裝 exec_prefix/bin/pythonversion
。
2.4. 雜項¶
要在 Unix 上使用 Python 腳本,你需要讓他們是可執行的 (executable),例如用
$ chmod +x script
並在腳本的頂部放一個合適的 Shebang。以下通常是個好選擇:
#!/usr/bin/env python3
將在整個 PATH
中搜索 Python 直譯器。然而某些 Unix 系統可能沒有 env 命令,因此你可能需要將 /usr/bin/python3
寫死 (hardcode) 成直譯器路徑。
要在 Python 腳本中使用 shell 命令,請見 subprocess
模組。
2.5. 客製化 OpenSSL¶
要使用你所選擇發行商 (vendor) 的 OpenSSL 配置和系統信任儲存區 (system trust store),請找到包含
openssl.cnf
檔案的目錄或位於/etc
的符號連結 (symlink)。在大多數發行版上,該檔案會是在/etc/ssl
或者/etc/pki/tls
中。該目錄亦應包含一個cert.pem
檔案和/或一個certs
目錄。$ find /etc/ -name openssl.cnf -printf "%h\n" /etc/ssl
下載、建置並安裝 OpenSSL。請確保你使用
install_sw
而不是install
。install_sw
的目標不會覆蓋openssl.cnf
。$ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz $ tar xzf openssl-VERSION $ pushd openssl-VERSION $ ./config \ --prefix=/usr/local/custom-openssl \ --libdir=lib \ --openssldir=/etc/ssl $ make -j1 depend $ make -j8 $ make install_sw $ popd
使用客製化 OpenSSL 建置 Python(參見配置
--with-openssl
和--with-openssl-rpath
選項)$ pushd python-3.x.x $ ./configure -C \ --with-openssl=/usr/local/custom-openssl \ --with-openssl-rpath=auto \ --prefix=/usr/local/python-3.x.x $ make -j8 $ make altinstall
備註
OpenSSL 的修補釋出版 (patch releases) 具有向後相容的 ABI。你不需要重新編譯 Python 來更新 OpenSSL。使用一個新的版本來替代客製化 OpenSSL 安裝版就可以了。