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.
Table 6-19. 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.