Как я могу узнать, какие версии Python у меня есть?
Я использую Ubuntu 14.04 (Trusty Tahr).
Можно использовать python -V
(и др.), чтобы показать Вам версию Python, что python
команда разрешает. Если это - все, в чем Вы нуждаетесь, Вы сделаны. Но видеть каждую версию Python в Вашей системе берет немного больше.
В Ubuntu мы можем проверить разрешение с readlink -f $(which python)
. В случаях по умолчанию в 14,04 это просто укажет на /usr/bin/python2.7
.
Мы можем объединить это в цепочку в показать версию той версии Python:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/usr/bin/python2.7: Python 2.7.6
, Но это все еще только говорит нам, каково наш ток python
разрешение. Если бы мы были в Virtualenv (то общая система управления стеком Python) python
мог бы решить к другой версии:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
Это - реальный вывод.
факт могли быть сотни различных версий Python, спрятавшего вокруг Вашей системы, или на путях, которые контекстуально добавляются, или живущий под различными двоичными именами (как python3
).
, Если мы предполагаем, что двоичный файл Python всегда будет названным python<something>
и быть двоичным файлом, мы можем просто искать всю систему файлы, которые соответствуют тем критериям:
$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; | awk -F: '/x-executable; charset=binary/ {print $1}' | xargs readlink -f | sort -u | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
/media/ned/websites/venvold/bin/python: Python 2.7.4
/srv/chroot/precise_i386/usr/bin/python2.7: Python 2.7.3
/srv/chroot/trusty_i386/usr/bin/python2.7: Python 2.7.6
/srv/chroot/trusty_i386/usr/bin/python3.4: Python 3.4.0
/srv/chroot/trusty_i386/usr/bin/python3.4m: Python 3.4.0
/usr/bin/python2.7: Python 2.7.6
/usr/bin/python2.7-dbg: Python 2.7.6
/usr/bin/python3.4: Python 3.4.0
/usr/bin/python3.4dm: Python 3.4.0
/usr/bin/python3.4m: Python 3.4.0
/web/venvold/bin/python: Python 2.7.4
Это - очевидно, довольно отвратительная команда, но это - снова реальный вывод, и это, кажется, сделало довольно полное задание.
Введите следующее в терминале ( Ctrl + Высокий звук + T ):
python -V
или
python --version
<час> можно найти список опций/параметров для многих команд в терминале путем ввода команды, сопровождаемой - справка
Пример:
python --help
Руководство/страницы справочника, также доступное для большей части такого CLI, который может быть отображен man <command>
(Исключая: man python
)
От man python
:
COMMAND LINE OPTIONS
-V , --version
Prints the Python version number of the executable and exits.
существует также python3
установлены на многих машинах, таким образом, можно сделать:
python3 --version
для обнаружения, какой Python 3.x Вы выполняете.
python --version
и
python2 --version
показывают версию Python 2.x,
python3 --version
установленная версия Python 3.x
Когда Вы будете работать python
в терминале, это произведет вывод как это:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Посмотрите первую строку - Python 2.7.6
.
Также работает python3
. Я имею 3.4.1
Python 3.4.1 (default, Jul 31 2014, 12:46:17)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Однако, это не покажет Вам их всех. Если у Вас есть 2 или больше python 3. Версии X.x, Вы будете только видеть последнюю.
По умолчанию на 14,04, Вы имеете 2.7.6 и 3.4.0. Как Вы видите, я обновил к 3.4.1. Я знаю, что все еще имею 3.4.0, потому что, когда я перехожу в /usr/bin
, я вижу python3.4
, и если я работаю /usr/bin/python3.4
в командной строке, я добираюсь 3.4.0, и выполнение /usr/local/bin/python3.4
дает мне 3.4.1
Можно также проверить версию Python из самого кода с помощью platform
модуль из стандартной библиотеки. Существует две функции: platform.python_version()
(возвращает строку), и platform.python_version_tuple()
(кортеж возвратов). Сценарий:
import platform
print(platform.python_version())
print(platform.python_version_tuple())
Выполнение:
$ python test.py
3.4.1
('3', '4', '1')
$ python2.7 test.py
2.7.8
('2', '7', '8')
Легко, откройте терминал и сделайте следующее:
Запись
python
для проверки Вашего 2.x версия В моем случае это появится:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Для 3.x, запишите:
python3
В моем случае, это появляется:
Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
Для обоих случаев, для получения из оболочки Python запишите:
exit()
В терминале оболочки
$ which -a python
списки все Ваш python
.
$ which -a python2.7
списки все Ваш python2.7
.
$ /usr/bin/python -V
дает информацию о версии /usr/bin/python
.
регистрация сценария Python
вот иллюстрация в оболочке ipython:
In [1]: import sys
In [2]: sys.version
2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec 6 2015, 18:08:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
In [3]: sys.version_info
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)
In [4]: sys.version_info >= (2,7)
Out[4]: True
In [5]: sys.version_info >= (3,)
Out[5]: False
Если Вы хотите видеть все версии Python, доступного как команды, работать compgen -c python
. Например:
$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2
, Если Вы хотите получить версию каждого вышеупомянутого, вот острота:
$ for p in $(compgen -c python); do printf "%-16s" $p; $p --version; done
python2.7 Python 2.7.6
python3.4m Python 3.4.3
python3.4 Python 3.4.3
python3m Python 3.4.3
python Python 2.7.6
python3 Python 3.4.3
python2 Python 2.7.6
python*-config
я заметил, что python*-config
программы не поддерживают эти --version
флаг. Например:
$ python3-config --version
Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir
, Таким образом, Вы могли фильтровать их с grep -v
, например:
compgen -c python | grep -v -- '-config