在运行时检查 Python 模块版本

2023-11-30

许多第三方 Python 模块都有一个属性,用于保存模块的版本信息(通常类似于module.VERSION or module.__version__),但有些则不然。

此类模块的具体示例是 libxslt 和 libxml2。

我需要检查运行时是否使用了这些模块的正确版本。有没有办法做到这一点?

一个潜在的解决方案是在运行时读取源代码,对其进行散列,然后将其与已知版本的散列进行比较,但这很糟糕。

有更好的解决方案吗?


Use pkg_资源。从 PyPI 安装的任何东西至少应该有一个版本号。

>>> import pkg_resources
>>> pkg_resources.get_distribution("blogofile").version
'0.7.1'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在运行时检查 Python 模块版本 的相关文章

随机推荐

  • 从 powershell 脚本记录到 csharp 程序(log4net - 日志文件)

    我用 C 编写了一个程序 它创建一个日志文件并使用 log4net 填充该文件 该程序启动 powershell scripts 脚本也应该使用 log4net 我想监视脚本运行时记录到 log4net 的内容 并将这些信息写入我的日志文件
  • 使按钮在玩家死亡后出现 - Unity3D 4.6 GUI C#

    我该如何做到一旦玩家死亡就会出现一个按钮 我已经对重启级别进行了编码 并且屏幕上有使用该代码的按钮 我怎样才能让按钮不显示并且在玩家死亡之前不起作用 回应如下 public GameObject RESTART BUTTON bool is
  • iphone:将uiimage放在tableview部分标题中,拉伸问题

    嘿人们 我将 UIImage 放入 UITableVIew 的节标题中 因此我使用了在互联网上找到的一些代码 UIView tableView UITableView tableView viewForHeaderInSection NSI
  • Django - Timeuntil 标签输出缩写

    我正在使用 django timeuntil 模板标记 输出类似于8 hours 15 minutes 有谁知道我如何才能使输出像8 Hr 15 Min 看看timessince 来自 django 源代码 chunks 60 60 24
  • 添加文档时 MongoDB 游标是否“自动增长”

    我正在使用 MongoDB 游标来查找大量文档 这需要相当长的时间 如果在此期间 数据库中添加了与光标的搜索条件相匹配的文档 会发生什么情况 光标会返回文档吗 或者游标在开始时是否会拍摄某种快照 从而忽略后来添加的结果 光标会返回文档吗 是
  • 如何通过缩放视野来始终保持 2 个物体在视野中​​? (或 z&y 轴)

    我正在为 2 名玩家制作一个小型街机射击游戏 并且需要将屏幕聚焦于 2 名玩家 我让相机在 X 轴的玩家中心移动 但我认为当 2 名玩家玩家之间的距离越来越近 镜头也越来越近 This is the perspective pov 移动相机
  • 如何部署 Outlook 宏?

    我做了一个 Outlook 宏 我如何部署它以在其他机器上使用它 我是否遵循在我的机器上执行的相同步骤 工具 gt 宏 gt 创建新项目 还是有其他方法可以像我们处理 vb 或 C 项目一样进行部署 不 您不需要遵循相同的步骤并从头开始重新
  • 获取 data.frame 中各组的平均值和标准差

    我的心率数据以列表的形式存在 其中有四个类别 1AS 1CS 1AI 1CI 每个类别的大小各不相同 我想输出列表中每个类别的平均值和标准差 我有这种格式的数据来计算方差分析和图基 我已经成功完成了 但平均值让我难住了 Group HR 1
  • while循环和线程的无限循环问题[重复]

    这个问题在这里已经有答案了 使用一个基本示例来说明我的问题 我有 2 段几乎相同的代码 这段代码会导致while循环无限运行 private boolean loadAsset new Thread new Runnable Overrid
  • Oracle 序列:此处不允许使用 CURRVAL?

    以下 Oracle SQL 代码生成错误 ORA 02287 此处不允许序列号 INSERT INTO Customer CustomerID Name VALUES Customer Seq nextval AAA SELECT FROM
  • array() 无法识别列名参数

    在 R 中 我使用dplyr更具体地说arrange 不知何故arrange功能未按预期工作 在下面的示例中 我首先存储列的名称 然后将此变量作为参数传递给名为 my function 的自定义函数 target column mean a
  • Facebook SDK 共享始终返回 sharerDidCancel [重复]

    这个问题在这里已经有答案了 我尝试使用 Facebook SDK 分享帖子 但无论是分享还是取消帖子 总是会调用 sharerDidCancel 这是我的代码 void shareFacebook FBSDKShareLinkContent
  • 在多个浏览器中测试/检查网络应用程序的软件/工具?

    我正在创建一个网站 我想使用自动化测试工具自动检查多个浏览器以进行浏览器兼容性测试 你们知道是否有任何软件 工具 我可以只提供一个链接 然后在多个浏览器中加载页面 我用过浏览器截图之前 如果你不介意等一两个小时也没关系 我还建议您查看一些链
  • 内部类出现“范围内没有类型 file1 的封闭实例”错误

    我有一些代码 本质上它导入了另一个类 它有一个我试图访问的内部类 但它提出了这个错误 file2 java 5 error no enclosing instance of type file1 is in scope public sta
  • 使用 Java 访问 Android Manifest 属性

    这是清单示例 是否可以从 Java 访问属性 versionCode 和 versionName 如何
  • 写入有符号整数就像在 C++ 中写入无符号整数一样

    Is reinterpret cast这样做是安全的 这是最好的方法吗 例如 在下面的代码中 我有一个名为ibytestream 这允许读取uint16 ts and int16 t是从它 ibytestream next is a vec
  • 如何使用纯 javascript 将子级附加到具有指定类名的所有节点

    var menuheader document createElement li document getElementsByClassName subMenu appendChild menuheader 上面是代码片段 我收到此错误 f
  • NetBeans 12.6 的 TAB 和缩进问题

    交易是这样的 如果我在一行代码中使用 TAB 键 效果很好 我按下它 它会正常插入空格 如果我转到一个新行 一个没有代码的空行 它就不起作用 无论 像这样 System out pri nt 这是第一个问题 第 2 号 缩进 如果我在任意位
  • 在 jquery datetimepicker 中设置最大和最小日期时间

    我正在使用jquery datetimepicker 我想在其中设置mindate和时间 这是在第二个datetimepicker中选择的值 我尝试的是 date start datetimepicker autoSize true cha
  • 在运行时检查 Python 模块版本

    许多第三方 Python 模块都有一个属性 用于保存模块的版本信息 通常类似于module VERSION or module version 但有些则不然 此类模块的具体示例是 libxslt 和 libxml2 我需要检查运行时是否使用