Программно найти установленную версию pywin32 - PullRequest
13 голосов
/ 04 ноября 2010

Некоторые пакеты Python позволяют программе получить установленную версию. Э.Г.

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

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

Ответы [ 3 ]

16 голосов
/ 22 февраля 2011

Я нашел сообщение в блоге "Включение информации о версии в ваши пакеты Python" от Jean-Paul Calderone , в котором показано, что вы можете получить версию pywin32 следующим образом:

>>> import win32api
>>> fixed_file_info = win32api.GetFileVersionInfo(win32api.__file__, '\\')
>>> fixed_file_info['FileVersionLS'] >> 16
212
7 голосов
/ 28 февраля 2012

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

3 голосов
/ 04 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...