我面临着一个令人困惑的情况。官方完全支持的 Python 最新版本是 3.9,虽然它在 FreeBSD 中可用pkg
,pip-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
您安装pkg
的pip
.这可能会导致您的系统出现意外的不一致。
答案2
我突然想到,我建议安装 pip 3.7,然后使用它通过以下方式进行自我升级
pip install --upgrade pip
这看起来与如何从虚拟环境中更新 pip 本身?在 StackOverflow 上。