6.13 使用 Python

  Ports 套件支持同时并行安装多个不同的 Python 版本。 Ports 应确保能够根据用户配置的 PYTHON_VERSION 变量使用正确的 python 解释器。 一般说来, 这是通过将脚本中的 python 路径名替换为 PYTHON_CMD 变量的值来实现的。

  在 PYTHON_SITELIBDIR 下安装文件的 ports 应在包名上使用 pyXY- 前缀, 以便明示它们将会配合哪个 Python 版本使用。

PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

表 6-20. 对用到 Python 的 port 最有用的一些变量

USE_PYTHON 此 port 需要 Python。 可以用 2.3+ 这样的形式来指定所希望的版本。 除此之外, 也可以用横线来分隔两个版本号, 以表示某个范围的版本, 例如: 2.1-2.3
USE_PYDISTUTILS 使用 Python distutils 来完成配置、 编译和安装。 对包含 setup.py 的 port 而言这是必需的。 它会自动覆盖默认的 do-build 以及 do-install 这两个 target。 如未定义 GNU_CONFIGURE, 它还会改变 do-configure
PYTHON_PKGNAMEPREFIX 作为 PKGNAMEPREFIX 来区分不同 Python 版本的 package。 例如: py24-
PYTHON_SITELIBDIR 全站 package 所在的目录, 它包括了 Python 的安装目录 (通常是 LOCALBASE)。 在安装 Python 模块时, PYTHON_SITELIBDIR 变量会非常有用。
PYTHONPREFIX_SITELIBDIR 去掉了 PREFIX 部分的 PYTHON_SITELIBDIR。 应尽可能在 pkg-plist 中使用 %%PYTHON_SITELIBDIR%%%%PYTHON_SITELIBDIR%% 的默认值是 lib/python%%PYTHON_VERSION%%/site-packages
PYTHON_CMD Python 解释器的命令行, 包括版本号。
PYNUMERIC 将数值处理扩展模块加入依赖关系。
PYNUMPY 对新增的数值计算扩展, numpy的依赖。 (PYNUMERIC 目前已被作者淘汰)。
PYXML 将 XML 扩展模块加入依赖关系。 (对于 Python 2.0 和更高版本不再需要, 因为它已经成为了标准组件)。
USE_TWISTED 将 twistedCore 加入依赖关系。 也可以用这个变量指定所需的组件, 例如: web lore pair flow
USE_ZOPE 加入对 Zope, 一种 web 应用平台的依赖。 这会把 Python 依赖改为 Python 2.3。 此外 ZOPEBASEDIR 也会自动设为 Zope 安装目录的位置。

  完整的可用变量列表, 可以在 /usr/ports/Mk/bsd.python.mk 中找到。

若您有关于 FreeBSD ports 系统的问题, 请发送电子邮件至 <ports@FreeBSD.org>。
关于此文档的任何问题, 请致函 <doc@FreeBSD.org>。