Package-Management

FreeBSD 12.2 上的 Python 3.9 和 pip-3.9

  • March 9, 2021

我面臨著一個令人困惑的局面。官方最新的完全支持的 Python 版本是 3.9,雖然它在 FreeBSDpkg中可用,但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你安裝的pkgwith pip。這可能會導致系統出現意外的不一致。

引用自:https://unix.stackexchange.com/questions/637091