当前位置: 首页 > 知识库问答 >
问题:

如何检查 Python 模块的版本?

吕飞翼
2023-03-14

我使用setuptools安装了Python模块构造statlib

sudo apt-get install python-setuptools

sudo easy_install statlib
sudo easy_install construct

如何从命令行检查它们的版本?

共有3个答案

夏雅志
2023-03-14

大蟒

如果你在Python上

>>> from importlib.metadata import version
>>> version('construct')
'4.3.1'

大蟒

使用安装工具库一起分发pkg_resources模块。请注意,传递给方法get_distribution字符串应对应于 PyPI 条目。

>>> import pkg_resources
>>> pkg_resources.get_distribution('construct').version
'2.5.2'

旁注:

> < li>

请注意,您传递给< code>get_distribution方法的字符串应该是在PyPI中注册的包名,而不是您尝试导入的模块名。不幸的是,这些并不总是相同的(例如,您< code>pip install memcached,但是< code>import memcache)。

如果您想从命令行应用此解决方案,您可以执行以下操作:

python -c \
  "import pkg_resources; print(pkg_resources.get_distribution('construct').version)"
逄边浩
2023-03-14

你可以试试

>>> import statlib
>>> print statlib.__version__

>>> import construct
>>> print contruct.__version__

这是政治公众人物396建议的方法。但政治公众人物从未被接受,也一直被推迟。事实上,Python核心开发人员似乎越来越支持不包括__version_属性,例如在Remove-importlib_metadata.version中。。

郭业
2023-03-14

使用< code>pip而不是< code>easy_install。

使用pip,通过以下方式列出所有已安装的软件包及其版本:

pip freeze

在大多数 Linux 系统上,你可以通过管道将其传输到 grep(或 Windows 上的 findstr)以查找您感兴趣的特定包的行。

pip freeze | grep lxml

lxml==2.3

pip freeze | findstr lxml

lxml==2.3

对于单个模块,可以尝试 __version__ 属性。但是,有些模块没有它:

python -c "import requests; print(requests.__version__)"
2.14.2

python -c "import lxml; print(lxml.__version__)"

回溯(最近一次调用最后一次):
文件“

最后,由于问题中的命令前缀为sudo,因此您似乎正在安装到全局python环境中。我强烈建议研究Python虚拟环境管理器,例如virtualenvwrapper。

 类似资料:
  • 问题内容: 许多第三方Python模块都有一个属性,该属性保存该模块的版本信息(通常类似或),但有些则不然。 此类模块的特定示例是libxslt和libxml2。 我需要检查这些模块在运行时是否使用了正确的版本。有没有办法做到这一点? 潜在的解决方案是在运行时读取源代码,对其进行哈希处理,然后将其与已知版本的哈希进行比较,但这很讨厌。 有更好的解决方案吗? 问题答案: 我会远离哈希。正在使用的li

  • 问题内容: 如何检查我是否在代码中的某个位置导入了模块? 我想检查是否已经导入模块的原因是因为我有一个我不想导入的模块,因为有时会弄乱我的程序。 问题答案: 测试字典中的模块名称: 从文档中: 这是将模块名称映射到已经加载的模块的字典。 请注意,语句有两件事: 如果模块之前从未导入过(=中不存在= ),则将其加载并添加到中。 在当前名称空间中绑定1个或多个引用模块对象或模块名称空间成员的对象的名称

  • 如何检查服务器上安装了哪个版本的GitLab? 我是关于GitLab更改日志中指定的版本: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md 例如:“6.5.0”、“6.4.3”等。 Сa这只能通过终端完成吗 有没有办法远程执行此操作(使用浏览器而不是终端)?

  • 如何在Ubuntu 16.04中检查安装了哪个版本的aiohttp? 这个管用 但事实并非如此

  • 问题内容: 如何检查正在解释脚本的版本的Python Interpreter? 问题答案: 模块的字符串中提供了此信息: 可读性: 进行进一步处理: 为了确保脚本以Python解释器的最低版本要求运行,请将其添加到你的代码中: 这将比较主要版本和次要版本信息。微(=添加0,1等等),甚至的元组只要你喜欢。但是请注意,最好总是“躲避”检查某个功能是否存在,如果没有,请采取变通方法(或纾困)。有时,某

  • 问题内容: 我必须为我们的应用程序使用Python和Django。所以我有两个版本的Python,分别是2.6和2.7。现在,我已经安装了Django。我可以运行示例应用程序以测试Django成功。但是,如何确定Django使用2.6还是2.7版本以及Django使用什么版本的模块? 问题答案: 我必须为我们的应用程序使用Python和Django。所以我有两个版本的Python,分别是2.6和2