Bin
2025-12-17 bc6aa38242b0a7dea4b18bc90e2d78740436a58b
图片路径测试
已修改2个文件
46 ■■■■■ 文件已修改
label_studio/data_export/mixins.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
label_studio/data_export/models.py 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
label_studio/data_export/mixins.py
@@ -352,7 +352,7 @@
            converter = Converter(
                config=self.project.get_parsed_config(),
                project_dir=None,
                upload_dir=os.getenv('LS_UPLOAD_DIR', '/data'),  # 优先使用环境变量
                upload_dir=os.path.join(settings.MEDIA_ROOT, settings.UPLOAD_DIR),
                download_resources=download_resources,
                # for downloading resource we need access to the API
                access_token=self.project.organization.created_by.auth_token.key,
label_studio/data_export/models.py
@@ -156,16 +156,58 @@
        input_json = DataExport.save_export_files(project, now, get_args, data, md5, name)
        upload_dir = os.path.join(settings.MEDIA_ROOT, settings.UPLOAD_DIR)
        # ==== 详细调试日志 ====
        logger.error('=' * 80)
        logger.error('[COCO DEBUG] Starting COCO export')
        logger.error(f'[COCO DEBUG] upload_dir: {upload_dir}')
        logger.error(f'[COCO DEBUG] download_resources: {download_resources}')
        logger.error(f'[COCO DEBUG] Task count: {len(tasks)}')
        # 打印前3个任务的数据
        for i, task in enumerate(tasks[:3]):
            logger.error(f'[COCO DEBUG] Task {i+1} data: {task.get("data")}')
        # 检查上传目录内容
        if os.path.exists(upload_dir):
            subdirs = os.listdir(upload_dir)
            logger.error(f'[COCO DEBUG] upload_dir contents: {subdirs}')
        converter = Converter(
            config=project.get_parsed_config(),
            project_dir=None,
            upload_dir=os.getenv('LS_UPLOAD_DIR', '/data'),  # 优先使用环境变量
            upload_dir=upload_dir,
            download_resources=download_resources,
            access_token=project.organization.created_by.auth_token.key,
            hostname=hostname,
        )
        logger.error(f'[COCO DEBUG] Converter initialized')
        with get_temp_dir() as tmp_dir:
            logger.error(f'[COCO DEBUG] Calling converter.convert...')
            converter.convert(input_json, tmp_dir, output_format, is_dir=False)
            logger.error(f'[COCO DEBUG] Converter.convert completed')
            # 检查输出
            tmp_contents = os.listdir(tmp_dir)
            logger.error(f'[COCO DEBUG] tmp_dir contents: {tmp_contents}')
            # 检查images目录
            images_dir = os.path.join(tmp_dir, 'images')
            if os.path.exists(images_dir):
                image_files = os.listdir(images_dir)
                logger.error(f'[COCO DEBUG] images/ has {len(image_files)} files: {image_files}')
                if len(image_files) == 0:
                    logger.error('[COCO DEBUG] *** PROBLEM: images directory is EMPTY ***')
            else:
                logger.error('[COCO DEBUG] *** PROBLEM: images/ directory DOES NOT EXIST ***')
            logger.error('=' * 80)
            files = get_all_files_from_dir(tmp_dir)
            # if only one file is exported - no need to create archive
            if len(os.listdir(tmp_dir)) == 1: