Python 如何从 .whl 文件中获取版本号

Python How can I get the version number from a .whl file

由于一些自定义日志记录,我想从 wheel 文件中获取版本号。

我当然可以只解析文件名,但我猜会有更好的方法来做到这一点。

我现在做的是:

获取包信息并将其放入字典中:

def get_package_info():
    info_dict = {}
    with open(os.path.join(glob.glob("./*.egg-info")[0], "PKG-INFO"), "r") as info:
        for i in info:
            i = i.split(":")
            info_dict[i[0].strip()] = i[1].strip()

        return info_dict

现在我可以从这本词典中找到 Verion。

如果有人对此有更好的方法,请告诉我。

您也可以使用 pkginfo 例如

from pkginfo import Wheel

w = Wheel(r'C:\path\to\package.whl')

print(w.version)

对轮子的文件名进行简单的解析就足够了:

>>> 'torch-1.8.1-cp39-cp39-manylinux1_x86_64.whl'.split('-')[1]
'1.8.1'

如果你想更复杂,你也可以使用wheel-filename为你做这个解析:

>>> from wheel_filename import parse_wheel_filename
>>> pwf = parse_wheel_filename('pip-18.0-py2.py3-none-any.whl')
>>> pwf.version
'18.0'

如果您只需要为单个包快速计算它,您可以使用我创建的这个代码笔页面,从 wheel 的文件名中获取版本和更多详细信息:https://codepen.io/chaitan94/full/mdWEeBp