Skip to content

27.4 Python 开发环境

本节介绍如何在 FreeBSD 上配置 Python 开发环境。

27.4.1 安装 Python

在 FreeBSD 中,不同的 Python 版本分别封装。换言之,Python 3.11 和 Python 3.13 属于不同的包,例如 Port lang/python311 对应 Python 3.11,lang/python313 对应 Python 3.13。

在 FreeBSD Ports 中,不同版本 Python 通过 pkg 包管理器构建的二进制包,其支持程度随版本演进而有所不同。

例如,当前 lang/python(实际上只是一个元包,即指向其他软件包的依赖包)指向 Python 3.13,那么通过 pkg 安装的其他 Python 包(如 Python-XX)在默认情况下也会以此版本为基础构建;其他依赖 Python 的软件同样依赖该版本。

而以最新 Python 版本为基础构建的 Python 包或软件,在 FreeBSD 上的支持可能不够完善(可能需要通过 Ports 构建,或者无法使用)。

技巧

这类似于 Gentoo Linux 中的 Python USE。只要指定了 Python 版本,所有依赖 Python 的软件都会使用所选择的版本。

建议按以下方式安装 Python:

  • 使用 pkg 安装 Python 和 py-pip 包:
sh
# pkg install python devel/py-pip
  • 也可通过 Ports 安装:
sh
cd /usr/ports/lang/python/ && make install clean   # 进入 Python Ports 目录并编译安装,同时清理临时文件
cd /usr/ports/devel/py-pip/ && make install clean  # 进入 py-pip Ports 目录并编译安装,同时清理临时文件

如果要安装特定版本的 Python,建议统一通过 USE 全局指定 Python 版本。

27.4.2 如何指定 Ports 编译的 Python 版本?

注意

实际上,lang/python 指向的版本最终是由 USE 设置控制的。

假设需要将默认编译版本从 3.13 改为 3.12:

sh
# echo "DEFAULT_VERSIONS+= python=3.12 python3=3.12" >> /etc/make.conf

将默认 Python 版本设置为 3.12,并将其追加到 /etc/make.conf 文件中。

技巧

如果只设置了单个参数,那么出现警告是正常的,见 Bug 243034 - Mk/Uses/python.mk: WARNING when python version is set to non-default version in make.conf,记录 Python 版本配置警告问题。

sh
/!\ WARNING /!\

PYTHON_DEFAULT must be a version present in PYTHON2_DEFAULT or PYTHON3_DEFAULT,
if you want more Python flavors, set BUILD_ALL_PYTHON_FLAVORS in your make.conf

27.4.3 参考文献