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

9

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

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


解析文件名有什么问题吗?但无论如何,wheel文件是一个zip归档文件。您可以在PEP-0427中了解其格式。 - PM 2Ring
3个回答

8

你还可以使用 pkginfo,例如:

from pkginfo import Wheel

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

print(w.version)

0

对于轮子的文件名,简单解析即可:

>>> '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'

如果你只需要快速计算一个单独包的版本,你可以使用我创建的这个 Codepen 页面,从 wheel 文件名中获取版本和更多细节: https://codepen.io/chaitan94/full/mdWEeBp


0

我现在所做的是:

获取包信息并将其放入一个 dict 中:

import os

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

if __name__ == '__main__':
    print(get_package_info())

现在我可以从这个字典中获取版本。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接