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
由于一些自定义日志记录,我想从 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