某些Python包为程序提供了获取已安装版本的方法。 E.g。
>>> import numpy
>>> numpy.version.version
'1.5.0'
但我无法找到pywin32
的方法。有什么好办法可以找到?
答案 0 :(得分:15)
我找到了一篇博文"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
答案 1 :(得分:7)
改编自Mark的官方回复: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()
因为Craig的答案在amd64版本中不再适用于我。
答案 2 :(得分:3)
这是我到目前为止唯一的解决方法。它在Python安装的pywin32.version.txt
目录中找到一个名为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
但这远非官方API!我不知道pywin32
已安装pywin32.version.txt
个{{1}}个版本的版本,以及将来有多大可能继续存在。