【问题标题】:Importing gcsfs in datalab is giving an error在 datalab 中导入 gcsfs 出现错误
【发布时间】:2020-11-23 16:03:09
【问题描述】:

当我在datalab中导入gcsfs时,

import gcsfs

我有这个与包 fsspec 相关的无效语法错误。跟版本有关系吗


  File "/usr/local/envs/py3env/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2961, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)

  File "<ipython-input-3-3f25f74e3f1b>", line 1, in <module>
    import gcsfs

  File "/usr/local/envs/py3env/lib/python3.5/site-packages/gcsfs/__init__.py", line 5, in <module>
    from .core import GCSFileSystem

  File "/usr/local/envs/py3env/lib/python3.5/site-packages/gcsfs/core.py", line 7, in <module>
    import fsspec

  File "/usr/local/envs/py3env/lib/python3.5/site-packages/fsspec/__init__.py", line 10, in <module>
    from .mapping import FSMap, get_mapper

  File "/usr/local/envs/py3env/lib/python3.5/site-packages/fsspec/mapping.py", line 2, in <module>
    from .core import url_to_fs

  File "/usr/local/envs/py3env/lib/python3.5/site-packages/fsspec/core.py", line 314
    out[0] = (f"{out[0][1]}://", out[0][1], out[0][2])
                              ^
SyntaxError: invalid syntax


【问题讨论】:

    标签: python package google-cloud-datalab


    【解决方案1】:

    您使用的是 Python 3.5,而 f-strings 是 Python 3.6 中实现的功能。 要么找到与 Python 3.5 兼容的包版本,要么升级到 Python 3.6+。

    【讨论】:

      【解决方案2】:

      为了扩展 Claros 的答案,根本问题是 gcsfs 继承自 fsspec 包。 fsspec 最近的 0.8.0 版本实现了 f-strings,这导致了错误。要修复它,只需安装仍支持 Python 3.5 的最新 fsspec 版本,即

      !pip install fsspec==0.6.2
      

      https://pypi.org/project/fsspec/0.6.2/

      您可能还必须降级 gcsfs。我可以使用它

      !pip install  --upgrade gcsfs==0.5.3
      

      【讨论】:

        猜你喜欢
        • 2019-11-13
        • 2019-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-02
        • 1970-01-01
        相关资源
        最近更新 更多