Answers:
您可以使用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,这些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
这显然是一个非常可怕的命令,但这又是真实的输出,并且似乎做得相当透彻。
readlink: extra operand '/usr/bin/python2.7'
Try 'readlink --help' for more information.
python -v
会返回该版本并以root身份执行。它打印出一长串的东西,但在顶部说installing zipimport hook
了这句话,现在好像我在一个程序中,我不知道该如何退出,更不用说卸载了吗?您能帮我吗
-V
版本标记区分大小写。python -v
将您置于启用了详细消息的Python控制台中。Control + D滚蛋。或写exit()
并按回车键。
在终端(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
找出您正在运行的python3.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.Xx版本,则只会看到最新版本。
默认情况下在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。
我的代词是他/他
PATH
环境变量中首先列出其包含目录的目录?为什么运行python3
总是运行已安装的python3 的最高(子)版本?或者,实际上,它是否不显示/usr/bin/python3
符号链接指向的任何版本,而不必是最新版本?
/usr/bin
……
您还可以使用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')
sys.version
或更常见sys.version_info
。
如果要查看所有可用的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$'
轻松地打开终端,然后执行以下操作:
写
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()
外壳端子
$ which -a python
列出所有python
。
$ which -a python2.7
列出所有python2.7
。
$ /usr/bin/python -V
提供有关的版本信息/usr/bin/python
。
签入python脚本
这是ipython shell中的一个例子:
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 -v
会返回该版本并以root身份执行。它打印出一长串的东西,但在顶部说installing zipimport hook
了这句话,现在好像我在一个程序中,我不知道该如何退出,更不用说卸载了吗?您能帮我吗
ls /usr/bin | grep python