0

I have used pandas and gcsfs regularly in the past. Recently, I have been getting errors when trying to do so. I cannot reproduce the error on other systems. On my system, I get the error using both python 3.9.16 and 3.11.1. As you can see from the error message below, it has been hard for me to google for an answer. Any thoughts on what is causing this?

import gcsfs
import pandas as pd
x = pd.read_table("gs://MYBUCKET/clinvar/gene_specific_summary.txt")

And the stack trace:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1242, in read_table
    return _read(filepath_or_buffer, kwds)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 577, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1407, in __init__
    self._engine = self._make_engine(f, self.engine)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1661, in _make_engine
    self.handles = get_handle(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/pandas/io/common.py", line 716, in get_handle
    ioargs = _get_filepath_or_buffer(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/pandas/io/common.py", line 414, in _get_filepath_or_buffer
    file_obj = fsspec.open(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/fsspec/core.py", line 134, in open
    return self.__enter__()
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/fsspec/core.py", line 102, in __enter__
    f = self.fs.open(self.path, mode=mode)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/fsspec/spec.py", line 1241, in open
    f = self._open(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 1343, in _open
    return GCSFile(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 1502, in __init__
    super().__init__(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/fsspec/spec.py", line 1597, in __init__
    self.size = self.details["size"]
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 1538, in details
    self._details = self.fs.info(self.path, generation=self.generation)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/fsspec/asyn.py", line 121, in wrapper
    return sync(self.loop, func, *args, **kwargs)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/fsspec/asyn.py", line 106, in sync
    raise return_result
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/fsspec/asyn.py", line 61, in _runner
    result[0] = await coro
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 809, in _info
    out = await self._ls(path, **kwargs)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 846, in _ls
    for entry in await self._list_objects(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 545, in _list_objects
    items, prefixes = await self._do_list_objects(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 580, in _do_list_objects
    page = await self._call(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 430, in _call
    status, headers, info, contents = await self._request(
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/decorator.py", line 221, in fun
    return await caller(func, *(extras + args), **kw)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/retry.py", line 114, in retry_request
    return await func(*args, **kwargs)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/core.py", line 423, in _request
    validate_response(status, contents, path, args)
  File "/Users/seandavis/Documents/git/infra/jupyterlab/venv/lib/python3.9/site-packages/gcsfs/retry.py", line 83, in validate_response
    raise FileNotFoundError(path)
FileNotFoundError: b/MYBUCKET/o
seandavi
  • 2,818
  • 4
  • 25
  • 52

1 Answers1

1

This was an authentication issue. I had thought I was using application default credentials but, instead, I had an environment variable set that didn't have access to the bucket.

seandavi
  • 2,818
  • 4
  • 25
  • 52