当前位置: 首页>>技术教程>>正文


我有什么版本的Python?

,

问题描述

如何找到我的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 + Alt + T):

python -V

要么

python --version

您可以通过键入命令后跟–help来查找终端中许多命令的选项/参数列表

例:

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

第五种办法

您还可以使用标准库中的platform模块从代码本身检查Python版本。有两个函数: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版本,请运行compgen -c python。例如:

$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2

如果你想获得上述每一个的版本,这里有一点我写的one-liner:

$ 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程序不支持--version标志。例如:

$ python3-config --version
Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir

第七种办法

轻松打开终端并执行以下操作:

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 shell中退出,请写:

 exit()

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1505.html,未经允许,请勿转载。