一些Python軟件包爲程序提供了獲取安裝版本的方法。例如。以編程方式查找pywin32的安裝版本
>>> import numpy
>>> numpy.version.version
'1.5.0'
但我不能找到一種方法,爲pywin32
這樣做。有什麼好方法可以找到?
一些Python軟件包爲程序提供了獲取安裝版本的方法。例如。以編程方式查找pywin32的安裝版本
>>> import numpy
>>> numpy.version.version
'1.5.0'
但我不能找到一種方法,爲pywin32
這樣做。有什麼好方法可以找到?
我發現了一個博客帖子"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
這是我迄今爲止唯一的解決方法。它在Python安裝的site-packages
目錄中找到一個名爲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
文件,以及未來可能會繼續。
在馬克的官方迴應改編: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()
克雷格的答案不再工作對於我在amd64構建。