2. 在 Unix 平臺上使用 Python¶
2.1. 獲取和安裝最新版本的 Python¶
2.1.1. 在 Linux 上¶
大多數 Linux 發行版都預裝了 Python,並且在所有其他發行版上都可以作為一個軟體包使用。但是,你可能想使用的某些功能在你的發行版的軟體包中可能不可用。你可以從原始碼編譯最新版本的 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.1.1. 安裝 IDLE¶
在某些情況下,IDLE 可能未包含在你的 Python 安裝中。
對於 Debian 和 Ubuntu 使用者
sudo apt update sudo apt install idle
對於 Fedora、RHEL 和 CentOS 使用者
sudo dnf install python3-idle
對於 SUSE 和 OpenSUSE 使用者
sudo zypper install python3-idle
對於 Alpine Linux 使用者
sudo apk add python3-idle
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 安裝就足夠了。