2010-11-04 1 views
12

Некоторые пакеты Python предоставляют возможность для программы получить установленную версию. Например.Программно найти установленную версию pywin32

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

Но я не могу найти способ сделать это для pywin32. Какой может быть хороший способ узнать?

ответ

3

Это единственный способ, который я догадался до сих пор. Он находит файл с именем pywin32.version.txt в каталоге site-packages установки Python и читает содержимое.

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 и насколько вероятно, что это будет продолжаться в будущем.

7

Взято из официального ответа Марка по адресу: 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.