Два примечания: я не уверен, как установлен ваш контейнер. Вы пометили это как RHEL и Fedora. Это два отдельных дистрибутива. Я могу прокомментировать Fedora.
Во-первых, да, Python широко используется в мире GNU / Linux. Большинство дистрибутивов используют его как один из языков для сборки системы и ее пакетов. Серверы Linux являются единственными официально рекомендованными серверами для Python, или я так прочитал (отредактирую с источником позже, если смогу его найти). Python .org имеет Linux загрузок, но в исходных файлах, упакованных в сжатые архивы. Это может способствовать поиску диспетчера пакетов дистрибутива сначала для совместимости с дистрибутивом (поскольку присутствие в репозитории дистрибутива должно означать, что версия была проверена); эти пакеты предварительно скомпилированы, если не указано иное. Это также означает, что файлы являются дистрибутивными c - нет необходимости в .DEB, .RPM ...
Fedora: в сообщении нет версии Fedora, но по крайней мере Fedora 31 имеет версия для разработки, как они ее называют, Python 3.8.1 в формате RPM. (Fedora 32 должна иметь Python 3.8 на системном уровне.) Вы можете получить его с помощью:
sudo dnf install python38
Не перезаписывайте системные переменные для python или python3; эта ошибка может привести к системным c проблемам различной величины. После установки вы можете создать виртуальную среду в любом каталоге, с которым вы хотите:
python3.8 -m venv <venv_name>
Чтобы активировать venv, используйте:
. <path/to/venv>/<venv_name>/bin/activate
Вы можете установить псевдоним или символическую ссылку для простоты. Когда venv активирован, Python 3.8.x будет версией Python, используемой при вызове переводчика. Вы должны увидеть ваше имя_вены в скобках слева от вашего PS1. Чтобы деактивировать, используйте:
deactivate
Venv_name должно быть удалено из PS1, возвращая его в нормальное состояние. Проверка версии Python должна вернуть версию Python системного уровня.
Если вы проверяете версию Python до и после активации, она должна отличаться.
python3 -V
Этот пакет может или не может быть отправлен вниз по течению к RHEL. Если у вас есть доступный пакет, но вам нужен полный Python стек или он недоступен в базовых репозиториях RHEL, вам может понадобиться получить исходные файлы и распаковать архивы .
В качестве альтернативы можно проверить другие репозитории, узнать о RPM, которые кто-то другой скомпилировал из исходного кода, или проверить flatpak (чего я не сделал).
Последнее примечание: компиляция из исходного кода не должна приводить к увеличению Python двоичный Вы можете удалить любые ненужные дополнения, такие как оригинальный файл архива, использованный для компиляции, после того, как вы извлекли то, что вам нужно. Само действие будет храниться только в энергозависимой памяти, а не на вашем диске.