Как проверить, установлена ​​ли в системе последняя версия Python (python3.10)?

Я использую следующую команду 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 на хосте?

Вывод этой команды будет меняться в зависимости от того, на что указывает двоичный файл «python3». Выполнить whereis python3 — также, что касается команд оболочки, должно быть достаточно python3 --version

pzkpfw 13.04.2023 17:36

Есть ли у вас какие-либо требования или ограничения, чтобы сузить область проверки? Возможно, конкретная ОС и конкретные методы установки? В принципе, это может потребовать проверки каждого отдельного файла на хосте.

MisterMiyagi 13.04.2023 17:36

Не по делу, но это [:] не нужно. Все, что он делает, это делает копию.

wjandrea 13.04.2023 18:03

Ой, я думал sys.version_info это кортеж.

wjandrea 13.04.2023 20:43

Python 3.10 не является последней версией Python, а 3.11.

wjandrea 13.04.2023 20:44

@Lava Извините, я пытаюсь сказать, что вопрос неясен. Вы спрашиваете о последней версии Python (3.11) или конкретно о 3.10? или может какая-то конкретная версия?

wjandrea 13.04.2023 22:55

я в порядке с 3.10 или 3.11

Lava Sangeetham 14.04.2023 02:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
7
108
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Чтобы указать использование версии 3.10, вы можете использовать

py -3.10 -c 'import sys; print(sys.version_info[:])'

Разве лаунчер py не предназначен только для Windows?

Holloway 13.04.2023 17:58

А как насчет "или выше"? Что, если в системе установлен Python 3.11? Это работает только для 3.10.

wjandrea 13.04.2023 18:06
Ответ принят как подходящий

Вы можете узнать все ваши версии, установленные с помощью (работает с производными 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.

Zac Anger 13.04.2023 18:33

правильно работает только для установки пути по умолчанию.

Pepe N O 13.04.2023 18:38

Спасибо, но это дало мне 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

Lava Sangeetham 13.04.2023 18:41

Это не путь установки по умолчанию во многих системах.

MisterMiyagi 13.04.2023 18:42

Протестировано на производных Red Hat и Debian с установками Python по умолчанию.

Pepe N O 13.04.2023 18:46

@LavaSangeetham проверьте, правильно ли теперь работает заказ.

Pepe N O 13.04.2023 20:24

compgen -c | grep -i python3.10 (или python, чтобы увидеть все версии).

Другие вопросы по теме