Могу ли я проверить наличие любой версии python 3+ на компьютере с Linux - PullRequest
0 голосов
/ 10 октября 2019

ОС: CentOS

Я бы хотел развернуть скрипт python как часть более крупного пакета, и подойдет любой python3 +. На виртуальных машинах, которые у нас есть, я вижу python3, python36, python36u и python34. Я не хочу устанавливать новый python3 +, если у меня его тоже нет, я хочу установить python3, если в коробке есть только python2 +.

В том же духе я хочу использовать python3, python34, python36или что еще доступно.

Я развертываю с .rpm, но мне не повезло, справившись с этой сложностью в файле спецификации. Мой обходной путь - написать bash-скрипт для обработки и установки Python.

Есть ли способ управлять этим?

edit - добавить подробности об установках пакета

PRETTY_NAME = "CentOS Linux 7 (Core)"

yum install -y python34
yum list installed | grep python3
# python34.x86_64                       3.4.10-2.el7                     @epel    
# python34-libs.x86_64                  3.4.10-2.el7                     @epel 
which python3 
# usr/bin/which: no python3 in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
which python3.4
# /usr/bin/python3.4

1 Ответ

0 голосов
/ 10 октября 2019

Ради потомства выложу свое решение

#!/usr/bin/env bash

export PYTHONS
export RVAL
PYTHONS=$(compgen -c | grep "^python3.*[0-9]*$")
RVAL=$?

if [ $RVAL -ne 0 ] ; then
  yum install -y python3
  PYTHON="python3"
else
  PYTHON=$(echo "$PYTHONS" | head -1)
fi

echo "$PYTHON"

$PYTHON myscript.py
...