Project:Python/PYTHON TARGETS

PYTHON_TARGETS and PYTHON_SINGLE_TARGET are USE_EXPAND variables controlling support for various Python implementations (versions) in packages. These essentially control what version of Python the package will reference during and after installation.

Modern packages
The modern packages (using -r1 suite eclasses) use explicit USE flags aggregated in PYTHON_TARGETS and PYTHON_SINGLE_TARGET USE_EXPAND variables. The variables are defaulted in profiles and can be changed in. The flags may be adjusted per-package using as well.

The PYTHON_TARGETS variable is used for packages that support enabling more than a single Python implementation. Therefore, the variable may contain any number of implementations.

The PYTHON_SINGLE_TARGET variable is used for packages that are built for a single implementation of choice only. It may contain only a single implementation.

The possible values are listed in the PYTHON_COMPAT column of the Python project's implementations list.

python.eclass packages
The remaining packages (that can be identified by not having PYTHON_TARGETS USE flags) work in a different way.

If the user does not specify USE_PYTHON in (the default case), the packages are built for the versions of Python 2 and Python 3 which are installed and selected via.

Alternatively, the user may specify the requested implementations in USE_PYTHON. The possible values are listed in the USE_PYTHON column of the Python project's implementations list.

Unmasking non-stable implementation on a stable system
If you'd like to use an implementation that is not stable on your architecture on a stable system, you need to:


 * 1) Unmask the implementation using ,
 * 2) Unmask the relevant USE flags using . This also requires to set  to EAPI >= 5.