代码之家  ›  专栏  ›  技术社区  ›  Craig McQueen Dr. Watson

以编程方式查找已安装的pywin32版本

  •  13
  • Craig McQueen Dr. Watson  · 技术社区  · 14 年前

    >>> import numpy
    >>> numpy.version.version
    '1.5.0'
    

    但我找不到办法 pywin32 . 有什么好办法可以找到?

    3 回复  |  直到 14 年前
        1
  •  16
  •   Craig McQueen Dr. Watson    13 年前

    我找到一篇博文 "Include version information in your Python packages" by Jean-Paul Calderone 这表明你可以得到 pywin32 这种方式:

    >>> import win32api
    >>> fixed_file_info = win32api.GetFileVersionInfo(win32api.__file__, '\\')
    >>> fixed_file_info['FileVersionLS'] >> 16
    212
    
        2
  •  7
  •   RuiDC    12 年前

    改编自马克的官方回复: http://mail.python.org/pipermail/python-win32/2010-April/010404.html

    import os
    import distutils.sysconfig
    
    pth = distutils.sysconfig.get_python_lib(plat_specific=1)
    ver = open(os.path.join(pth, "pywin32.version.txt")).read().strip()
    

        3
  •  3
  •   Craig McQueen Dr. Watson    14 年前

    这是我到目前为止唯一的办法。它找到一个名为 pywin32.version.txt 在Python安装中 site-packages 目录,并读取内容。

    def get_pywin32_version():
        for path in sys.path:
            if os.path.isdir(path):
                filename = os.path.join(path, 'pywin32.version.txt')
                if os.path.isfile(filename):
                    with open(filename) as f:
                        pywin32_version = f.read()
                    pywin32_version = pywin32_version.strip()
                    return pywin32_version
    

    pywin32 已经安装了 pywin32.version.txt文件