Я использую следующую команду shell, чтобы найти последнюю установленную python
$ python3 -c 'import sys; print(sys.version_info)'
sys.version_info(major=3, minor=8, micro=10, releaselevel='final', serial=0)
Но эта команда возвращает версию Python по умолчанию (3.8), которая указывала на python3, вместо установленной более высокой версии Python (3.10).
Как проверить, установлена ли версия python3.10 на хосте?
Есть ли у вас какие-либо требования или ограничения, чтобы сузить область проверки? Возможно, конкретная ОС и конкретные методы установки? В принципе, это может потребовать проверки каждого отдельного файла на хосте.
Не по делу, но это [:] не нужно. Все, что он делает, это делает копию.
Ой, я думал sys.version_info это кортеж.
Python 3.10 не является последней версией Python, а 3.11.
@Lava Извините, я пытаюсь сказать, что вопрос неясен. Вы спрашиваете о последней версии Python (3.11) или конкретно о 3.10? или может какая-то конкретная версия?
я в порядке с 3.10 или 3.11






Чтобы указать использование версии 3.10, вы можете использовать
py -3.10 -c 'import sys; print(sys.version_info[:])'
Разве лаунчер py не предназначен только для Windows?
А как насчет "или выше"? Что, если в системе установлен Python 3.11? Это работает только для 3.10.
Вы можете узнать все ваши версии, установленные с помощью (работает с производными Red Hat и Debian с установленными по умолчанию путями python)
ls /usr/bin/python* | grep -o '[0-9]\+\.[0-9]\+' | tr -d '.' | sort -n
последний с
ls /usr/bin/python* | grep -o '[0-9]\+\.[0-9]\+' | tr -d '.' | sort -n | tail -n 1
и проверить конкретную версию
test $(ls /usr/bin/python* | grep -o '[0-9]\+\.[0-9]\+' | tr -d '.' | sort -n | tail -n 1) -eq 310 && echo "Python version 3.10 is installed in this host." || echo "A version of python different than 3.10 is installed."
Это ненадежно, потому что предполагает, что все версии Python установлены в каталоге /usr/bin.
правильно работает только для установки пути по умолчанию.
Спасибо, но это дало мне 3,8 это самое высокое. сортировка работает неправильно $ ls /usr/bin/python* | grep -o '[0-9]\+\.[0-9]\+' | sort -n 2,7 3,10 3,10 3,6 3,6 3,7 3,7 3,7 3,7 3,8 3,8
Это не путь установки по умолчанию во многих системах.
Протестировано на производных Red Hat и Debian с установками Python по умолчанию.
@LavaSangeetham проверьте, правильно ли теперь работает заказ.
compgen -c | grep -i python3.10 (или python, чтобы увидеть все версии).
Вывод этой команды будет меняться в зависимости от того, на что указывает двоичный файл «python3». Выполнить
whereis python3— также, что касается команд оболочки, должно быть достаточноpython3 --version