Python package¶
A Python package provides support for processing a Python supported module.
LIBFOO_TYPE = 'python'
Only the build and installation phases are used when processing the sources
for a Python package (i.e. no configuration stage is invoked). By default,
the build phase will invoke setup.py build
while the installation stage
will invoke setup.py install
(see
LIBFOO_PYTHON_SETUP_TYPE
for other setup
types). When a Python package is process, it will use the system's
default Python interpreter. A developer can override what Python interpreter
to use by configuring the
LIBFOO_PYTHON_INTERPRETER
option in a
package:
LIBFOO_PYTHON_INTERPRETER = '/opt/my-custom-python-build/python'
The following sections outline configuration options are available for a Python package.
LIBFOO_BUILD_DEFS
¶
Provides a means to pass definitions into the build process. This option can is defined as a dictionary of string pairs. This field is optional.
LIBFOO_BUILD_DEFS = {
# adds "--option=value" to the command
'--option': 'value',
}
LIBFOO_BUILD_ENV
¶
Provides a means to pass environment variables into the build process. This option is defined as a dictionary with key-value pairs where the key is the environment name and the value is the environment variable's value. This field is optional.
LIBFOO_BUILD_ENV = {
'OPTION': 'VALUE',
}
LIBFOO_BUILD_OPTS
¶
Provides a means to pass command line options into the build process. This option can be defined as a dictionary of string pairs or a list with strings -- either way defined will generate argument values to include in the build event. This field is optional.
LIBFOO_BUILD_OPTS = {
# adds "--option value" to the command
'--option': 'value',
}
# (or)
LIBFOO_BUILD_OPTS = [
# adds "--some-option" to the command
'--some-option',
]
LIBFOO_ENV
¶
Provides a means to pass environment variables into all stages for a package. This option is defined as a dictionary with key-value pairs where the key is the environment name and the value is the environment variable's value. This field is optional.
LIBFOO_ENV = {
'OPTION': 'VALUE',
}
LIBFOO_INSTALL_DEFS
¶
Provides a means to pass definitions into the installation process. This option can is defined as a dictionary of string pairs. This field is optional.
LIBFOO_INSTALL_DEFS = {
# adds "--option=value" to the command
'--option': 'value',
}
LIBFOO_INSTALL_ENV
¶
Provides a means to pass environment variables into the installation process. This option is defined as a dictionary with key-value pairs where the key is the environment name and the value is the environment variable's value. This field is optional.
LIBFOO_INSTALL_ENV = {
'OPTION': 'VALUE',
}
LIBFOO_INSTALL_OPTS
¶
Provides a means to pass command line options into the installation process. This option can be defined as a dictionary of string pairs or a list with strings -- either way defined will generate argument values to include in the installation event. This field is optional.
LIBFOO_INSTALL_OPTS = {
# adds "--option value" to the command
'--option': 'value',
}
# (or)
LIBFOO_INSTALL_OPTS = [
# adds "--some-option" to the command
'--some-option',
]
LIBFOO_PYTHON_INTERPRETER
¶
Defines a specific Python interpreter when processing the build and installation stages for a package. If not specified, the system's Python interpreter will be used. This field is optional.
LIBFOO_PYTHON_INTERPRETER = '<path>'
LIBFOO_PYTHON_SETUP_TYPE
¶
The setup type will configure how a Python package is built and installed. The default setup type used for a Python package is a distutils package. It is recommended to always configure a setup type for a Python package. The following outlines available setup types in releng-tool:
Type |
Value |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
For example:
LIBFOO_PYTHON_SETUP_TYPE = 'setuptools'
For setup types other than Setuptools/distutils, the installer
module will be used to install packages to their destination folders.
Host environments are required to pre-install needed packages in their
running Python environment to support setup types not available in a
standard Python distribution. For example, if a PDM setup type is set,
the host system will need to have pdm
Python module installed on
the system.