Как я могу узнать, какие версии Python у меня есть?
Я использую Ubuntu 14.04 (Надежный Tahr).
Как я могу узнать, какие версии Python у меня есть?
Я использую Ubuntu 14.04 (Надежный 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+Alt+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 linux2Type "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 linuxType "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 были доступны в виде команд, запустите compgen -c python
. Например:
$ compgen -c python | sort -upythonpython2python2.7python3python3.4python3.4mpython3m
Если вы хотите получить версию каждого из вышеперечисленных:
compgen -c python | sort -u | grep -v -- '-config$' | while read -r p; do printf "%-14s " "$p" "$p" --versiondone
python Python 2.7.6python2 Python 2.7.6python2.7 Python 2.7.6python3 Python 3.4.3python3.4 Python 3.4.3python3.4m Python 3.4.3python3m Python 3.4.3
Примечание: Я отфильтровываю python*-config
программы с grep -v
поскольку они не поддерживают --version
флаг. Например:
$ python3-config --versionUsage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir
Вы также можете проверить версию Python из самого кода, используя platform
модуль из стандартной библиотеки. Есть две функции: platform.python_version()
(возвращает строку) и platform.python_version_tuple()
(возвращает кортеж). Скрипт:
import platformprint(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 linux2Type "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 linuxType "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 sysIn [2]: sys.version2.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_infosys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)In [4]: sys.version_info >= (2,7)Out[4]: TrueIn [5]: sys.version_info >= (3,)Out[5]: False
Кроме того, быстрый способ узнать, какие двоичные файлы python установлены: ls /usr /bin | grep python
@TejasKale Лучше запустить ls /usr/bin/python*
(или ls /usr/bin /*python*
, если вы * действительно * хотите файлы с python
* в любом месте * в названии). Таким образом, ls
по-прежнему форматирует свои выходные данные для терминала (и вы получаете несколько столбцов и, с псевдонимом ls
по умолчанию в Ubuntu, раскрашивание).