【发布时间】:2018-08-27 12:30:21
【问题描述】:
如何在 Ubuntu 16.04 中查看安装了哪个版本的 aiohttp?
这行得通
python -V
Python 2.7.12
但这不是
aiohttp -V
-bash: aiohttp: command not found
【问题讨论】:
标签: python
如何在 Ubuntu 16.04 中查看安装了哪个版本的 aiohttp?
这行得通
python -V
Python 2.7.12
但这不是
aiohttp -V
-bash: aiohttp: command not found
【问题讨论】:
标签: python
它不是命令行工具。这就是为什么它说command not found。这是一个pip 包。所以,你可以这样做:
pip freeze | grep aiohttp
查找版本。
【讨论】:
如果您使用pip (>= 1.3) 安装它,请使用
$ pip show aiohttp
对于旧版本,
$ pip freeze | grep aiohttp
pip freeze 的优点是它可以正确显示可编辑的 VCS 检出版本,而 pip show 则不能。
... 或
$ pip list | grep aiohttp
$ pip list --outdated | grep aiohttp
(--outdated 查看软件包的当前和最新版本)。
致谢:Find which version of package is installed with pip
注意:属性__version__ 派上用场,但it is not always available。这是一个随着时间演变的问题。 YMMV。
【讨论】:
__version__ 并不总是可用,但自 2001 年以来一直强烈建议打包开发人员使用它,并且从那时起一直在长期使用。 pip 于 2011 年发布,理所当然地成为事实上的标准,但它仅适用于 pip 安装的软件包。对于使用python setup.py install 从源代码构建的软件包,这可能不是真的,即使您也可以使用 pip 安装这些软件包。 IMO,我发现 __version__ 至少和 pip list | grep 一样可靠,尤其是因为它不会因用户而异。
一种适用于几乎任何模块的通用方法,无论它是如何安装的:
$ python -c "import aiohttp; print(aiohttp.__version__)"
2.3.3
它的作用是运行 Python 解释器,导入模块,然后打印模块的 __version__ 属性。几乎所有 Python 库都定义了__version__,所以这应该是非常通用的(尤其是__version__ 是PEP8 推荐的)。
这类似于:
$ python
>>> import aiohttp
>>> print(aiohttp.__version)
2.3.3
>>> quit()
【讨论】:
python3,请将 python 替换为 python3。