关于aligo使用pyinstaller打包后tqmd报错:没有write方法

软件包版本

  • aligo                     6.2.4   
  • tqdm                      4.64.1
  • pyinstaller               6.0.0
  • pyinstaller-hooks-contrib   2024.7

运行一切正常,进度条显示正常

import logging

logging.basicConfig(filename='h.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

from aligo import Aligo
ali = Aligo()
up_file = ali.upload_file('test.txt')
print(up_file)

pyinstaller -F 打包运行也一切正常

但是去掉窗口 pyinstaller -Fw 打包报错,tqdm没有write方法

不清楚什么问题,tqdm方法降版本后不兼容aligo最新版。

报错位置如下:

 def _put_data(self, file_path: str, part_info: CreateFileResponse, file_size: int) -> Union[BaseFile, Null]:
        """上传数据"""
        with open(file_path, 'rb') as f:
            progress_bar = tqdm(total=file_size, unit='B', unit_scale=True, colour='#21d789')
            for i in range(len(part_info.part_info_list)):
                part_info_item = part_info.part_info_list[i]
                data = f.read(Create.__UPLOAD_CHUNK_SIZE)
                try:
                    resp = self._session.put(data=data, url=part_info_item.upload_url)
                    if resp.status_code == 403:
                        raise requests.exceptions.RequestException(f'upload_url({part_info_item.upload_url}) expired')
                except requests.exceptions.RequestException:
                    part_info = self.get_upload_url(GetUploadUrlRequest(
                        drive_id=part_info.drive_id,
                        file_id=part_info.file_id,
                        upload_id=part_info.upload_id,
                        part_info_list=[UploadPartInfo(part_number=i.part_number) for i in part_info.part_info_list]
                    ))
                    part_info_item = part_info.part_info_list[i]
                    resp = self._session.put(data=data, url=part_info_item.upload_url)
                if resp.status_code == 403:
                    raise '这里不对劲,请反馈:https://github.com/foyoux/aligo/issues/new'
                progress_bar.update(len(data))

        progress_bar.close()

应该是tqdm或者pyinstaller的锅,或者有什么配置

只好修改源码中tqdm写法:

去掉progress_bar ,使用最简单的进去条显示

    def _put_data(self, file_path: str, part_info: CreateFileResponse, file_size: int) -> Union[BaseFile, Null]:
        """上传数据"""
        with open(file_path, 'rb') as f:
            # progress_bar = tqdm(total=file_size, unit='B', unit_scale=True, colour='#21d789')
            for i in tqdm(range(len(part_info.part_info_list))):
                part_info_item = part_info.part_info_list[i]
                data = f.read(Create.__UPLOAD_CHUNK_SIZE)
                try:
                    resp = self._session.put(data=data, url=part_info_item.upload_url)
                    if resp.status_code == 403:
                        raise requests.exceptions.RequestException(f'upload_url({part_info_item.upload_url}) expired')
                except requests.exceptions.RequestException:
                    part_info = self.get_upload_url(GetUploadUrlRequest(
                        drive_id=part_info.drive_id,
                        file_id=part_info.file_id,
                        upload_id=part_info.upload_id,
                        part_info_list=[UploadPartInfo(part_number=i.part_number) for i in part_info.part_info_list]
                    ))
                    part_info_item = part_info.part_info_list[i]
                    resp = self._session.put(data=data, url=part_info_item.upload_url)
                if resp.status_code == 403:
                    raise '这里不对劲,请反馈:https://github.com/foyoux/aligo/issues/new'
        #         progress_bar.update(len(data))
        #
        # progress_bar.close()

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值