---
document: modulemd
version: 2
data:
name: python39
stream: 3.9-bootstrap
summary: Python programming language, version 3.9
description: |-
This module gives users access to the internal Python 3.9 in RHEL8, as
well as provides some additional Python packages the users might need.
In addition to these you can install any python3-* package available
in RHEL and use it with Python from this module.
license:
module:
- MIT
dependencies:
- buildrequires:
platform: [el8.4.0]
# Depending on our selves for bootstrapping
# This is not needed in bootstrap phase 1 and can be disabled
python39: [3.9-bootstrap]
# sicpy needs package swig
swig: [3.0]
# mod_wsgi needs several packages from httpd
httpd: [2.4]
requires:
platform: [el8]
references:
community: https://www.python.org/
documentation: https://docs.python.org/3.9/
profiles:
common:
rpms:
- python39
build:
rpms:
- python39
- python39-devel
- python39-rpm-macros
buildopts:
rpms:
# === Bootstrap phase 1 ===
#
# %python3_pkgversion 39
# # python39
# %_without_rpmwheels 1
# %_without_optimizations 1
# # python39, setuptools, wheel
# %_with_bootstrap 1
# # python39, setuptools, pip
# %_without_tests 1
# # pip
# %_without_doc 1
# === Bootstrap phase 2 ===
#
# %python3_pkgversion 39
# # setuptools, pip, ...
# %_without_tests 1
# Macros bootstrapping info:
# Only the macros that are below the `macros: |` declaration are
# being used in the module at a given time. If you want to switch
# to a different bootstrap phase, comment out the current
# bootstrap phase macros, move them above this section. And take
# the bootstrap phase you want to use, uncomment it, and move it
# here, below the `macros: |` line.
# Explanation:
# Macros are expanded even when they are commented out using '#',
# therefore it's safer to just move them out of the macros
# section entirely to avoid possible issues.
macros: |
# === Bootstrap phase 3 ===
#
%python3_pkgversion 39
# scipy needs pybind11 to build and pybind11 needs scipy for tests
%_without_tests 1
components:
rpms:
# === Bootstrap phase 1 ===
#
# python39:
# rationale: The main Python interpreter
# ref: 93a1c0a50478623f84220798338b4d66a2e7117c
# buildorder: 10
# python3x-setuptools:
# rationale: Packaging tool
# ref: 1950ae3d8549d4df835b6e31337bebd9a40bf4f8
# buildorder: 20
# python-wheel:
# rationale: Packaging tool
# ref: 1d3137dab7dbb7c7fa4526224de74ab47cadbd95
# buildorder: 30
# python3x-pip:
# rationale: Packaging tool
# ref: 0bf48e6304b1048952635f8811b3f8992347623b
# buildorder: 40
# === Bootstrap phase 2 ===
#
# python3x-setuptools:
# rationale: Packaging tool
# ref: 1950ae3d8549d4df835b6e31337bebd9a40bf4f8
# buildorder: 10
# python3x-pyparsing:
# rationale: Python component
# ref: ad9334c8fb4a6a6e24252c4a94f64523044b0368
# buildorder: 20
# python39:
# rationale: The main Python interpreter
# ref: 93a1c0a50478623f84220798338b4d66a2e7117c
# buildorder: 30
# python-wheel:
# rationale: Packaging tool
# ref: 1d3137dab7dbb7c7fa4526224de74ab47cadbd95
# buildorder: 40
# python3x-pip:
# rationale: Packaging tool
# ref: 0bf48e6304b1048952635f8811b3f8992347623b
# buildorder: 40
# python3x-six:
# rationale: Python component
# ref: 3930eca3dcbfbe7c80ab9c0f4d385e3f818016eb
# buildorder: 40
# python-py:
# rationale: Python component
# ref: f98dc1297bfd38a5356aee346c59259cd983bfaa
# buildorder: 40
# python-chardet:
# rationale: Python component
# # stream branch shared with python38 module
# ref: 04b5d1be6d2e14ece3a43caa87b79216ea35b65a
# buildorder: 40
# python-attrs:
# rationale: Python component
# ref: b68e1e37d4944f9a20e452bb3596e5f75b9506be
# buildorder: 40
# python-pluggy:
# rationale: Python component
# ref: 2abffaab2ce5b6a5e0121442bdd5a49eb4c4f752
# buildorder: 40
# python-pysocks:
# rationale: Python component
# # stream branch shared with python38 module
# ref: 483216203ae75373f15aea373c80ee0585c13e63
# buildorder: 40
# python-wcwidth:
# rationale: Python component
# ref: d45e8c1e3fcd02f21d6bdd008f877380c1dd69c1
# buildorder: 40
# python-packaging:
# rationale: Python component
# ref: d6dd7925507609cedacc346a2793842dfbdcdf72
# buildorder: 40
# python-toml:
# rationale: Python component
# ref: dc3e570c0f28ba1c9b9bbca871b122e0a5f8a2ff
# buildorder: 40
# python-iniconfig:
# rationale: Python component
# ref: f707fca709c2a1d006dcff691dfa2b9b648ecb7f
# buildorder: 40
# python-more-itertools:
# rationale: Python component
# ref: 4c7d27c844b65549cf4162977488b7b63288b377
# buildorder: 50
# pytest:
# rationale: Python component
# ref: c398c89a6c193e054c6924b94e57106202210ab4
# buildorder: 60
# === Bootstrap phase 3/4 ===
# For bootstrap phase 3 uncomment all `buildorder:` lines below,
# for bootstrap phase 4 comment them out.
#
python3x-setuptools:
rationale: Packaging tool
ref: 1950ae3d8549d4df835b6e31337bebd9a40bf4f8
python3x-pyparsing:
rationale: Python component
ref: ad9334c8fb4a6a6e24252c4a94f64523044b0368
python39:
rationale: The main Python interpreter
ref: 93a1c0a50478623f84220798338b4d66a2e7117c
python-wheel:
rationale: Packaging tool
ref: 1d3137dab7dbb7c7fa4526224de74ab47cadbd95
python3x-pip:
rationale: Packaging tool
ref: 0bf48e6304b1048952635f8811b3f8992347623b
python3x-six:
rationale: Python component
ref: 3930eca3dcbfbe7c80ab9c0f4d385e3f818016eb
python-py:
rationale: Python component
ref: f98dc1297bfd38a5356aee346c59259cd983bfaa
python-chardet:
rationale: Python component
# stream branch shared with python38 module
ref: 04b5d1be6d2e14ece3a43caa87b79216ea35b65a
python-attrs:
rationale: Python component
ref: b68e1e37d4944f9a20e452bb3596e5f75b9506be
python-pluggy:
rationale: Python component
ref: 2abffaab2ce5b6a5e0121442bdd5a49eb4c4f752
python-pysocks:
rationale: Python component
# stream branch shared with python38 module
ref: 483216203ae75373f15aea373c80ee0585c13e63
python-wcwidth:
rationale: Python component
ref: d45e8c1e3fcd02f21d6bdd008f877380c1dd69c1
python-packaging:
rationale: Python component
ref: d6dd7925507609cedacc346a2793842dfbdcdf72
python-toml:
rationale: Python component
ref: dc3e570c0f28ba1c9b9bbca871b122e0a5f8a2ff
python-iniconfig:
rationale: Python component
ref: f707fca709c2a1d006dcff691dfa2b9b648ecb7f
python-more-itertools:
rationale: Python component
ref: 4c7d27c844b65549cf4162977488b7b63288b377
pytest:
rationale: Python component
ref: c398c89a6c193e054c6924b94e57106202210ab4
python-idna:
rationale: Python component
ref: 96079b9187a3c449211a2dc1a4e910ef9956b7e9
python-urllib3:
rationale: Python component
ref: 6b6e02d630b786437deed074d421051cc2acbe87
Cython:
rationale: Python component
ref: 8c789216e7ce6b5e929c5046a27d5d890423c750
python-ply:
rationale: Python component
# stream branch shared with python38 module
ref: f113e7017224318a0e816f6e78f938187ff60515
python-psutil:
rationale: Python component
ref: b24769857571306e8bb21f72c53c1ef1a6fb95f6
python-psycopg2:
rationale: Python component
ref: 439d6fa4527303c38f65ae247c709410adb5821a
mod_wsgi:
rationale: Python component
ref: 83f89e967cf6729d4e78591b29ebde950ff12aea
python-requests:
rationale: Python component
ref: f99a3f5bab770a5fea956ceef8e9d0cd506b6379
buildorder: 10
numpy:
rationale: Python component
ref: 593d45b8a06077089786e5c3818950d295e85871
buildorder: 10
PyYAML:
rationale: Python component
ref: fadfcf8207e37e3910989e51f9d2e2ebcf783051
buildorder: 10
python-pycparser:
rationale: Python component
ref: ca7845af04898c3f98db25937fa93a58e5166cf4
buildorder: 10
python-lxml:
rationale: Python component
ref: 594c36cb17094416e72ceb7c1b9aefa9bc2857b7
buildorder: 10
python-cffi:
rationale: Python component
ref: b66960cca0cb1074520655088cae60899bd8fd00
buildorder: 20
pybind11:
rationale: Python component
ref: c5ded38bf8d331512fc09d82e8621fbf288f221f
# needs numpy
buildorder: 20
scipy:
rationale: Python component
ref: 0c42ffd27fafcf93fe7ca76033dedf8f4052ddcc
# needs pybind11
buildorder: 30
python-cryptography:
rationale: Python component
ref: e304a6883592ff881d6396fcd4a95c9f62eab810
# needs cffi
buildorder: 30
python-PyMySQL:
rationale: Python component
ref: dc5bc3753d271278f5da87a774ce58e924ed66b8
# needs cryptography
buildorder: 40
...