2. 在 Unix 平臺上使用 Python¶
2.1. 獲取和安裝最新版本的 Python¶
2.1.1. 在 Linux 上¶
Python 在大多數 Linux 發行版上都預裝了,並且在所有其他發行版上都可用作軟體包。但是,您可能想要使用某些在您的發行版的軟體包中不可用的功能。您可以從原始碼編譯最新版本的 Python。
如果最新版本的 Python 沒有預裝,並且也沒有在儲存庫中,您可以為自己的發行版製作軟體包。請檢視以下連結
另請參閱
- 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,首先應該做的是獲取原始碼。您可以下載最新版本的原始碼,或者直接抓取一個新鮮的克隆。(如果您想貢獻補丁,您將需要一個克隆。)
構建過程包括常用的命令
./configure
make
make install
配置選項以及特定 Unix 平臺的注意事項在 Python 原始碼樹根目錄的 README.rst 檔案中有詳細記錄。
警告
make install
可能會覆蓋或偽裝 python3
二進位制檔案。因此,建議使用 make altinstall
而不是 make install
,因為它只安裝 exec_prefix/bin/pythonversion
。
2.4. 其他¶
為了在 Unix 上輕鬆使用 Python 指令碼,您需要使它們可執行,例如使用
$ chmod +x script
並在指令碼頂部放置適當的 Shebang 行。通常一個好的選擇是
#!/usr/bin/env python3
它在整個 PATH
中搜索 Python 直譯器。但是,某些 Unix 可能沒有 env 命令,因此您可能需要將 /usr/bin/python3
硬編碼為直譯器路徑。
要在 Python 指令碼中使用 shell 命令,請檢視 subprocess
模組。
2.5. 自定義 OpenSSL¶
要使用您的供應商的 OpenSSL 配置和系統信任儲存,請找到
/etc
中包含openssl.cnf
檔案或符號連結的目錄。在大多數發行版上,該檔案位於/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 (請參閱 configure
--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 的補丁版本具有向後相容的 ABI。您不需要重新編譯 Python 來更新 OpenSSL。只需將自定義 OpenSSL 安裝替換為較新版本即可。