build-details.json
v1.0¶
Specification¶
https://packaging.python.org/en/latest/specifications/schemas/build-details-v1.0.schema.json |
||||
build-details.json — a static description file with build details of Python installations |
||||
type |
object |
|||
properties |
||||
|
Schema version. This is a string following the format For this specification version, this value is constant and MUST be Future versions of this schema MUST use a higher version number. Future versions of this schema MUST NOT use the same major version component as other schema version unless its specification is deemed backwards-compatible with them — it can’t change, or extend, any parts of the current specification in such a way as the semantics of the interpreted data differ, or that data valid under the new specification is invalid under the older specification, with the exception of additional properties (errors caused by |
|||
type |
string |
|||
const |
1.0 |
|||
|
Base prefix of the Python installation. Either an absolute path, or a path relative to directory where this file is contained. |
|||
type |
string |
|||
examples |
/usr |
|||
../.. |
||||
|
The path to the Python interprer of the base installation. Either an absolute path, or a path relative to This field MUST be present if the installation provides an interpreter executable. |
|||
type |
string |
|||
examples |
/usr/bin/python |
|||
bin/python |
||||
|
System platform string. This field SHOULD be equivalent to |
|||
type |
string |
|||
examples |
linux-x86_64 |
|||
|
Object containing details related to the Python language specification. |
|||
type |
object |
|||
properties |
||||
|
String representation the Python language version — a version string consisting only of the major and minor components. This field SHOULD be equivalent to |
|||
type |
string |
|||
examples |
3.14 |
|||
|
Object in the format of This section SHOULD be equivalent to |
|||
type |
object |
|||
examples |
major |
3 |
||
minor |
14 |
|||
micro |
1 |
|||
releaselevel |
final |
|||
serial |
0 |
|||
properties |
||||
|
type |
number |
||
|
type |
number |
||
|
type |
number |
||
|
type |
string |
||
enum |
alpha, beta, candidate, final |
|||
|
type |
number |
||
additionalProperties |
False |
|||
additionalProperties |
False |
|||
|
Object containing details related to Python implementation. This section SHOULD be equivalent to |
|||
type |
object |
|||
properties |
||||
|
Lower-case name of the Python implementation. |
|||
type |
string |
|||
examples |
cpython |
|||
pypy |
||||
|
Object in the format of |
|||
type |
object |
|||
examples |
major |
3 |
||
minor |
14 |
|||
micro |
1 |
|||
releaselevel |
final |
|||
serial |
0 |
|||
major |
7 |
|||
minor |
3 |
|||
micro |
16 |
|||
releaselevel |
final |
|||
serial |
0 |
|||
properties |
||||
|
type |
number |
||
|
type |
number |
||
|
type |
number |
||
|
type |
string |
||
enum |
alpha, beta, candidate, final |
|||
|
type |
number |
||
additionalProperties |
False |
|||
additionalProperties |
True |
|||
|
Object containing details related to ABI. |
|||
type |
object |
|||
properties |
||||
|
Build configuration flags, used to calculate the extension suffix. The flags MUST be defined in the order they appear on the extension suffix. |
|||
type |
array |
|||
examples |
t |
|||
d |
||||
|
Suffix used for extensions built against the current implementation version. This field MUST be present if the Python implementation supports extensions, otherwise this entry will be missing. |
|||
type |
string |
|||
examples |
.cpython-314-x86_64-linux-gnu.so |
|||
|
Suffix used for extensions built against the stable ABI. This field MUST be present if the Python implementation has a stable ABI extension suffix, otherwise this entry will be missing. |
|||
type |
string |
|||
examples |
.abi3.so |
|||
additionalProperties |
False |
|||
|
Valid module suffixes grouped by type. This section MUST be present if the Python installation supports importing external files, and it SHOULD be equivalent to the Additionally, if a Python implementation provides extension kinds other than the ones listed on |
|||
type |
object |
|||
examples |
source |
.py |
||
bytecode |
.pyc |
|||
optimized_bytecode |
.pyc |
|||
debug_bytecode |
.pyc |
|||
extensions |
.cpython-313-x86_64-linux-gnu.so |
|||
.abi3.so |
||||
.so |
||||
|
Object containing details related to the This section MUST by present if Python installation provides a |
|||
type |
object |
|||
properties |
||||
|
The path to the dynamic Either an absolute path, or a path relative to This field MUST be present if the Python installation provides a dynamic |
|||
type |
string |
|||
examples |
/usr/lib/libpython3.14.so.1.0 |
|||
lib/libpython3.14.so.1.0 |
||||
|
The path to the dynamic Either an absolute path, or a path relative to This field MUST be present if the Python installation provides a dynamic If this key is present |
|||
type |
string |
|||
examples |
/usr/lib/libpython3.so |
|||
lib/libpython3.so |
||||
|
The path to the static Either an absolute path, or a path relative to This field MUST be present if the Python installation provides a static |
|||
type |
string |
|||
examples |
/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a |
|||
lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a |
||||
|
Should extensions built against a dynamic This field MUST be present if the Python installation provides a dynamic |
|||
type |
boolean |
|||
additionalProperties |
False |
|||
|
Object containing details related to the Python C API. This section MUST be present if the Python implementation provides a C API, otherwise this section will be missing. |
|||
type |
object |
|||
properties |
||||
|
The path to the C API headers. Either an absolute path, or a path relative to |
|||
type |
string |
|||
examples |
/usr/include/python3.14 |
|||
include/python3.14 |
||||
|
The path to the pkg-config definition files. Either an absolute path, or a path relative to This field MUST be present if the Python implementation provides pkg-config definition files, otherwise this section will be missing. |
|||
type |
string |
|||
examples |
/usr/lib/pkgconfig |
|||
lib/pkgconfig |
||||
additionalProperties |
False |
|||
|
Object containing extra arbitrary data. This is meant to be used as an escape-hatch, to include any relevant data that is not covered by this specification. Implementations may choose what data to provide in this section. |
|||
type |
object |
|||
additionalProperties |
True |
|||
additionalProperties |
False |
Example¶
{
"schema_version": "1.0",
"base_prefix": "/usr",
"base_interpreter": "/usr/bin/python",
"platform": "linux-x86_64",
"language": {
"version": "3.14",
"version_info": {
"major": 3,
"minor": 14,
"micro": 0,
"releaselevel": "alpha",
"serial": 0
}
},
"implementation": {
"name": "cpython",
"version": {
"major": 3,
"minor": 14,
"micro": 0,
"releaselevel": "alpha",
"serial": 0
},
"hexversion": 51249312,
"cache_tag": "cpython-314",
"_multiarch": "x86_64-linux-gnu"
},
"abi": {
"flags": ["t", "d"],
"extension_suffix": ".cpython-314-x86_64-linux-gnu.so",
"stable_abi_suffix": ".abi3.so"
},
"suffixes": {
"source": [".py"],
"bytecode": [".pyc"],
"optimized_bytecode": [".pyc"],
"debug_bytecode": [".pyc"],
"extensions": [".cpython-314-x86_64-linux-gnu.so", ".abi3.so", ".so"]
},
"libpython": {
"dynamic": "/usr/lib/libpython3.14.so.1.0",
"dynamic_stableabi": "/usr/lib/libpython3.so",
"static": "/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a",
"link_extensions": true
},
"c_api": {
"headers": "/usr/include/python3.14",
"pkgconfig_path": "/usr/lib/pkgconfig"
}
}