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

如果未设置_version _变量,如何检查python包的版本

池庆
2023-03-14

我正在使用pyodbc,我想知道我正在使用的版本。显然,我不能使用pyodbc.\uuuuu version\uuuu,因为可能没有设置变量。

我还能怎么计算包的版本?

共有3个答案

龚铭
2023-03-14

您可以使用此命令(从终端)

pip freeze | grep pyodbc

对于pip(debian、ubuntu)的安装

apt-get install python-pip
辛承
2023-03-14

要获取有关模块的简短报告,包括其版本,请运行:

pip显示pyodbc

在命令提示符(例如:Windowscmd)。这甚至适用于没有__version__属性的模块。

岑毅庵
2023-03-14

它确实有版本信息,只需使用。version

In [4]: pyodbc.version
Out[4]: '3.0.10'

pip show命令也会为您提供:

In [54]: pip.main(["show","pyodbc"])
---
Metadata-Version: 1.1
Name: pyodbc
Version: 3.0.10
Summary: DB API Module for ODBC
Home-page: http://code.google.com/p/pyodbc
Author: Michael Kleehammer
Author-email: michael@kleehammer.com
License: MIT
Location: /usr/local/lib/python2.7/dist-packages
Requires: 
Classifiers:
  Development Status :: 5 - Production/Stable
  Intended Audience :: Developers
  Intended Audience :: System Administrators
  License :: OSI Approved :: MIT License
  Operating System :: Microsoft :: Windows
  Operating System :: POSIX
  Programming Language :: Python
  Programming Language :: Python :: 2
  Programming Language :: Python :: 3
  Topic :: Database
Out[54]: 0

您可以重定向stdout并解析输出:

import pip
import sys

if sys.version_info.major >= 3:
    from io import StringIO
else:
    from StringIO import StringIO


def get_version(package):
    f = StringIO()
    sys.stdout = f
    pip.main(["show", package])
    sys.stdout = sys.__stdout__
    return next((line.split(":", 1)[1].strip()
                 for line in f.getvalue().splitlines() if line.startswith("Version")), "No match")

但一种更简单的方法是使用pkg_资源,如果您查看要显示的源代码,您可以看到它是如何收集的:

from pip._vendor import pkg_resources

def get_version(package):
    package = package.lower()
    return next((p.version for p in pkg_resources.working_set if p.project_name.lower() == package), "No match")

要使用它,只需传递包名:

In [57]: get_version("pyodbc")
Out[57]: '3.0.10'

In [58]: get_version("pandas")
Out[58]: '0.17.1'

In [59]: get_version("requests")
Out[59]: '2.9.1'

In [60]: get_version("foobar")
Out[60]: 'No match'

您可以使用与show命令类似的逻辑轻松地扩展它以获得不同的信息。

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: MySQL错误1153-收到的数据包大于’max_allowed_pa​​cket’字节 嗨,我收到错误消息: 但是我没有对我的源代码进行任何更改,托管表明它们在服务器设置方面没有进行任何更改。 我不知道发生了什么 但是我试图找到原因。 那么,如何通过php脚本检查mysql变量? 并且可以在源代码中进行设置吗? 问题答案: 在

  • 问题内容: 我想检查一个变量是否存在。现在我正在做这样的事情: 是否有其他方法无一例外? 问题答案: 要检查是否存在局部变量: 要检查是否存在全局变量: 要检查对象是否具有属性:

  • 问题内容: 我想检查变量是否已定义。例如,以下引发未定义的错误 如何捕获此错误? 问题答案: 在JavaScript中,是一个对象。不存在的事物还有另一个价值,。DOM 在几乎所有无法在文档中找到某些结构的情况下都会返回,但是在JavaScript本身中是所使用的值。 第二,不,没有直接对等的内容。如果您确实要专门检查,请执行以下操作: 如果要检查变量是否存在,那只能用/ 来完成,因为它将未声明的

  • 本文向大家介绍如何在JavaScript中检查未定义的变量?,包括了如何在JavaScript中检查未定义的变量?的使用技巧和注意事项,需要的朋友参考一下 要检查变量是否为“未定义”,您需要使用以下命令进行检查。如果结果为“ false”,则表示未定义变量。在这里,变量结果为“ True”- 示例

  • 我使用安装了Python模块和: 如何从命令行检查它们的版本?

  • 问题内容: 我需要在python脚本中设置一些环境变量,并且我希望从python调用的所有其他脚本(shell脚本)(将是子进程)来查看设置的环境变量。该值为数字。 如果这样做,它会抱怨说1必须是字符串。我也想知道一旦设置它,如何在python(在脚本的后半部分)中读取环境变量。 问题答案: 你可能需要考虑其他方面的代码健壮性; 当你将整数值的变量存储为环境变量时,请尝试 然后为了进行检索,请考虑