The Ports Collection supports parallel installation of multiple Python versions. Ports should make sure to use a correct python interpreter, according to the user-settable PYTHON_VERSION variable. Most prominently, this means replacing the path to python executable in scripts with the value of PYTHON_CMD variable.
Ports that install files under PYTHON_SITELIBDIR should use the pyXY- package name prefix, so their package name embeds the version of Python they are installed into.
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
Table 6-20. Most useful variables for ports that use Python
USE_PYTHON | The port needs Python. Minimal required version can be specified with values such as 2.3+. Version ranges can also be specified, by separating two version numbers with a dash, e.g.: 2.1-2.3 |
USE_PYDISTUTILS | Use Python distutils for configuring, compiling and installing. This is required when the port comes with setup.py. This overrides the do-build and do-install targets and may also override do-configure if GNU_CONFIGURE is not defined. |
PYTHON_PKGNAMEPREFIX | Used as a PKGNAMEPREFIX to distinguish packages for different Python versions. Example: py24- |
PYTHON_SITELIBDIR | Location of the site-packages tree, that contains installation path of Python (usually LOCALBASE). The PYTHON_SITELIBDIR variable can be very useful when installing Python modules. |
PYTHONPREFIX_SITELIBDIR | The PREFIX-clean variant of PYTHON_SITELIBDIR. Always use %%PYTHON_SITELIBDIR%% in pkg-plist when possible. The default value of %%PYTHON_SITELIBDIR%% is lib/python%%PYTHON_VERSION%%/site-packages |
PYTHON_CMD | Python interpreter command line, including version number. |
PYNUMERIC | Dependency line for numeric extension. |
PYNUMPY | Dependency line for the new numeric extension, numpy. (PYNUMERIC is deprecated by upstream vendor). |
PYXML | Dependency line for XML extension (not needed for Python 2.0 and higher as it is also in base distribution). |
USE_TWISTED | Add dependency on twistedCore. The list of required components can be specified as a value of this variable. Example: web lore pair flow |
USE_ZOPE | Add dependency on Zope, a web application platform. Change Python dependency to Python 2.3. Set ZOPEBASEDIR containing a directory with Zope installation. |
A complete list of available variables can be found in /usr/ports/Mk/bsd.python.mk.