FreeBSD 12.2 上的 Python 3.9 和 pip-3.9

FreeBSD 12.2 上的 Python 3.9 和 pip-3.9

我面临着一个令人困惑的情况。官方完全支持的 Python 最新版本是 3.9,虽然它在 FreeBSD 中可用pkgpip-3.9但在将来当 Python 3.7 终止时我将需要它。

简而言之:

  • Python 3.7:可用,
  • Python 3.9:可用,
  • 点 3.7:可用,
  • 点 3.9:不可用。

我浏览了 FreeBSD 手册和相关的 FreeBSD wiki 页面,但似乎没有解释。那么这里发生了什么?

答案1

FreeBSD 项目分发的一组二进制包,您可以使用以下命令安装包装(8),一次仅包含一个 Python 版本的 Python 包(目前是 Python 3.7,如您在mk/bsd.default-versions.mk文件在FreeBSD 端口树)。这就是为什么您只能在包存储库中看到 Python 3.7 版本的 pip(即py37-pip)。

希望为其 FreeBSD 软件包使用不同 Python 版本的用户可以从源代码构建软件包。 Python的默认版本可以在使.conf(5)如下:

DEFAULT_VERSIONS=python=3.9 python3=3.9

如果您决定走这条路,我建议使用普德里埃设置您自己的包存储库。这是用于构建软件包的官方 FreeBSD 工具。另外,值得注意的是,从源代码构建通常在 FreeBSD 中得到很好的支持。

如果将 poudriere 添加到您的基础设施中成本太高,那么我只需为 Python 创建一个虚拟环境,然后在那里安装所需的 pip 版本。

我建议不要pip install --upgrade pip以 root 身份运行,因为它会污染您的系统。原因是您要升级pip您安装pkgpip.这可能会导致您的系统出现意外的不一致。

答案2

我突然想到,我建议安装 pip 3.7,然后使用它通过以下方式进行自我升级

pip install --upgrade pip

这看起来与如何从虚拟环境中更新 pip 本身?在 StackOverflow 上。

相关内容