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

Python 以编程方式查找已安装的pywin32版本,python,version,pywin32,Python,Version,Pywin32,一些Python包为程序提供了获取已安装版本的方法。例如 >>> import numpy >>> numpy.version.version '1.5.0' 但是我找不到一种方法来为你这样做。有什么好办法能找到答案呢?这是我迄今为止唯一能找到的办法。它在Python安装的站点包目录中找到一个名为pywin32.version.txt的文件,并读取其内容 def get_pywin32_version(): for path in sys.path:

一些Python包为程序提供了获取已安装版本的方法。例如

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

但是我找不到一种方法来为你这样做。有什么好办法能找到答案呢?

这是我迄今为止唯一能找到的办法。它在Python安装的
站点包
目录中找到一个名为
pywin32.version.txt的文件,并读取其内容

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
不过,这远远不是官方的API!我不知道是什么版本的
pywin32
安装了这个
pywin32.version.txt
文件,以及这种情况在未来继续下去的可能性有多大。

我发现了一篇博客文章,文章显示您可以通过以下方式获得
pywin32
的版本:

>>> import win32api
>>> fixed_file_info = win32api.GetFileVersionInfo(win32api.__file__, '\\')
>>> fixed_file_info['FileVersionLS'] >> 16
212

改编自Mark的官方回复,网址:

因为Craig的回答在amd64版本上不再适用于我

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()