You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas读取GCS存储桶CSV文件报isfilelike导入错误如何解决

问题描述

在GCS存储桶pipe_ml-data的postive_data_file/文件夹下存放了若干CSV文件,编写如下代码尝试访问这些文件并读取为pandas DataFrame:

from google.cloud import storage
import gcsfs
import fsspec
storage_client = storage.Client()

blobs = storage_client.list_blobs('pipe_ml-data', prefix='postive_data_file/')
all_files = list(blobs)
all_files = all_files[1::]
for blob in all_files:
    file_path = "gs://pipe_ml-data/{}".format(blob.name)
    content = pd.read_csv(file_path)
    content.head()
    break

运行代码时抛出ImportError,核心错误信息为无法从fsspec.utils模块中导入名称isfilelike,完整报错栈如下:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/var/folders/9q/h73jxwsx0f1629kdwpdfmdb80000gn/T/ipykernel_31809/388262887.py in <module>
      1 from google.cloud import storage
----> 2 import gcsfs
      3 import fsspec
      4 storage_client = storage.Client()
      5 

/opt/anaconda3/lib/python3.9/site-packages/gcsfs/__init__.py in <module>
      3 __version__ = get_versions()["version"]
      4 del get_versions
----> 5 from .core import GCSFileSystem
      6 from .mapping import GCSMap
      7 

/opt/anaconda3/lib/python3.9/site-packages/gcsfs/core.py in <module>
     18 from fsspec.utils import stringify_path, setup_logging
     19 from fsspec.callbacks import NoOpCallback
---> 20 from fsspec.implementations.http import get_client
     21 from .retry import retry_request, validate_response
     22 from .checkers import get_consistency_checker

/opt/anaconda3/lib/python3.9/site-packages/fsspec/implementations/http.py in <module>
     16 from fsspec.exceptions import FSTimeoutError
     17 from fsspec.spec import AbstractBufferedFile
---> 18 from fsspec.utils import DEFAULT_BLOCK_SIZE, isfilelike, nullcontext, tokenize
     19 
     20 from ..caching import AllBytes

ImportError: cannot import name 'isfilelike' from 'fsspec.utils' (/opt/anaconda3/lib/python3.9/site-packages/fsspec/utils.py)

已完成gcsfs、fsspec相关依赖库的安装与导入操作,但报错仍未解决。

报错根因

该问题是gcsfs与fsspec版本不兼容导致:当前环境安装的gcsfs版本依赖fsspec.utils下的isfilelike接口,但本地安装的fsspec版本中该函数被移动、重命名或移除,两个库的依赖版本没有对齐。

可行解决方案
  • 优先方案:升级两个库到兼容的最新稳定版
    pip环境执行以下命令:
    pip install --upgrade gcsfs fsspec
    
    conda环境执行以下命令:
    conda update gcsfs fsspec -c conda-forge
    
    升级完成后可通过pip list | grep gcsfs、pip list | grep fsspec确认版本,只要两个库为同批次发布的稳定版本,即可解决该导入错误。
  • 备选方案:固定验证过的兼容版本组合
    如果升级后和环境内其他依赖产生版本冲突,可以直接固定不存在该问题的版本组合:
    pip install gcsfs==2023.6.0 fsspec==2023.6.0
    
  • 代码补全提示:现有代码缺少pandas导入语句,运行前需要补充import pandas as pd,否则调用pd.read_csv时会触发NameError。原有跳过目录占位对象的切片逻辑all_files = all_files[1::]可正常生效,无需修改。

内容的提问来源于stack exchange,提问作者Tazim Taz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:48:31