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 中找到。