Python:批量重命名whl文件

whl文件是可以使用pip install命令离线安装的Python包,命名格式一般如下:

{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl

使用whl文件最讨厌的一点在于,由于文件名里指定了其兼容的操作系统版本等信息,在一台机器上可以使用的whl文件放到另一台机器上可能就没法用了,会报

.whl is not a supported wheel on this platform

的错误。查看当前机器支持的whl文件版本的命令为

pip debug --verbose
pip debug -v #效果同上

要解决这个问题最直接的做法就是根据上面这条命令输出的内容,修改whl文件名,如果需要安装的whl文件特别多的时候就会很费时间,写了一个Python脚本批量处理,可以把目录下的所有whl文件统一重命名成大多数平台都支持的py3-none-any版本,代码如下:

import os


def rename_whl(whl_file_folder: str, new_suf: str = 'py3-none-any'):
    for name in os.listdir(whl_file_folder):
        path = os.path.join(whl_file_folder, name)
        if os.path.isfile(path) and os.path.splitext(name)[1] == '.whl':
            suf_range = (name.find('-', name.find('-') + 1) + 1, name.rfind('.'))
            new_name = name.replace(name[suf_range[0]: suf_range[1]], new_suf)
            new_path = os.path.join(whl_file_folder, new_name)
            os.rename(path, new_path)


if __name__ == '__main__':
    import sys

    rename_whl(sys.argv[1])

当然,Python这么进行限制是因为名字不符合要求的whl文件可能在当前平台上存在兼容问题,因此重命名后不排除出现其他Bug的可能。虽然但是还是希望Python什么时候能给pip install命令增加一个忽视命名检查的选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值