Package-Management
FreeBSD 12.2 上的 Python 3.9 和 pip-3.9
我面臨著一個令人困惑的局面。官方最新的完全支持的 Python 版本是 3.9,雖然它在 FreeBSD
pkg
中可用,但pip-3.9
不是,當 Python 3.7 達到 EOL 時我將需要它。簡而言之:
- Python 3.7:可用,
- Python 3.9:可用,
- 點 3.7:可用,
- 點 3.9:不可用。
我瀏覽了 FreeBSD 手冊和相關的 FreeBSD wiki 頁面,但似乎沒有任何解釋。那麼這裡發生了什麼?
由 FreeBSD 項目分發的一組二進制包,您可以使用pkg(8)進行安裝,其中一次只包含一個 Python 版本的 Python 包(如您在Mk/bsd 中看到的那樣,目前是 Python 3.7。FreeBSD 埠樹中的default-versions.mk文件)。這就是為什麼您只能在包儲存庫中看到 Python 3.7 風格的 pip(即
py37-pip
)。希望為其 FreeBSD 軟體包使用不同 Python 版本的使用者可以從原始碼建構軟體包。Python的預設版本可以在make.conf(5)中設置如下:
DEFAULT_VERSIONS=python=3.9 python3=3.9
如果您決定走這條路,我建議您使用poudriere來設置您自己的包儲存庫。這是用於建構軟體包的官方 FreeBSD 工具。此外,值得注意的是,從原始碼建構通常在 FreeBSD 中得到很好的支持。
如果將 poudriere 添加到您的基礎架構的成本太高,那麼我只需為 Python 創建一個虛擬環境,然後在那里安裝所需的 pip 版本。
我建議不要
pip install --upgrade pip
以 root 身份執行,因為它會污染您的系統。原因是你要升級pip
你安裝的pkg
withpip
。這可能會導致系統出現意外的不一致。