Oli*_*Oli 108
您可以使用python -V
(et al.) 向您显示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
Run Code Online (Sandbox Code Playgroud)
但这仍然只是告诉我们我们目前的python
决议是什么。如果我们在 Virtualenv(一个常见的 Python 堆栈管理系统)中,python
可能会解析为不同的版本:
$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
Run Code Online (Sandbox Code Playgroud)
这是真正的输出。
事实是,您的系统周围可能存在数百个不同版本的 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
Run Code Online (Sandbox Code Playgroud)
这显然是一个非常可怕的命令,但这又是真正的输出,它似乎已经完成了相当彻底的工作。
iff*_*ffy 65
输入端子以下(Ctrl+ Alt+ T):
python -V
Run Code Online (Sandbox Code Playgroud)
或者
python --version
Run Code Online (Sandbox Code Playgroud)
您可以通过键入命令后跟--help来找到终端中许多命令的选项/参数列表
例子:
python --help
Run Code Online (Sandbox Code Playgroud)
也可用于大多数这样的CLI可通过被显示手动/手册页man <command>
(例如:man python
)
来自man python
:
COMMAND LINE OPTIONS
-V , --version
Prints the Python version number of the executable and exits.
Run Code Online (Sandbox Code Playgroud)
python3
许多机器上也安装了,所以你可以这样做:
python3 --version
Run Code Online (Sandbox Code Playgroud)
找出您正在运行的python 3.x。
Flo*_*sch 36
python --version
Run Code Online (Sandbox Code Playgroud)
和
python2 --version
Run Code Online (Sandbox Code Playgroud)
显示 Python 2.x 的版本,
python3 --version
Run Code Online (Sandbox Code Playgroud)
已安装的 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.
>>>
Run Code Online (Sandbox Code Playgroud)
见第一行 - 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.
>>>
Run Code Online (Sandbox Code Playgroud)
但是,这不会向您展示所有内容。如果您有 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
我的代词是他/他
如果您想查看所有可用的 Python 版本作为命令,请运行compgen -c python
. 例如:
$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2
Run Code Online (Sandbox Code Playgroud)
如果您想获得上述每个的版本:
compgen -c python | grep -v -- '-config$' | while read -r p; do
printf "%-14s " "$p"
"$p" --version
done
Run Code Online (Sandbox Code Playgroud)
compgen -c python | grep -v -- '-config$' | while read -r p; do
printf "%-14s " "$p"
"$p" --version
done
Run Code Online (Sandbox Code Playgroud)
注意:我过滤掉了python*-config
程序,grep -v
因为它们不支持该--version
标志。例如:
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
Run Code Online (Sandbox Code Playgroud)
您还可以使用platform
标准库中的模块从代码本身检查 Python 版本。有两个函数:(platform.python_version()
返回字符串)和platform.python_version_tuple()
(返回元组)。脚本:
import platform
print(platform.python_version())
print(platform.python_version_tuple())
Run Code Online (Sandbox Code Playgroud)
跑步:
$ python test.py
3.4.1
('3', '4', '1')
$ python2.7 test.py
2.7.8
('2', '7', '8')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
529809 次 |
最近记录: |