【问题标题】:Connect BigQuery to Python将 BigQuery 连接到 Python
【发布时间】:2020-03-20 18:00:56
【问题描述】:

我已经安装了 Google BigQuery,我正在尝试从 Python 中的 BigQuery 进行查询。

from google.cloud import bigquery 
client = bigquery.Client(project='aaa18')

但是我收到了这个错误,我不知道这是什么意思:

C:\Users\udgtlvr\AppData\Local\Continuum\anaconda3\python.exe C:/Users/udgtlvr/untitled4/bigquery

Traceback (most recent call last):

  File "C:/Users/udgtlvr/untitled4/bigquery", line 2, in <module>

    from google.cloud import bigquery

  File "C:\Users\udgtlvr\AppData\Local\Continuum\anaconda3\lib\site-packages\google\cloud\bigquery\__init__.py", line 35, in <module>

    from google.cloud.bigquery.client import Client

  File "C:\Users\udgtlvr\AppData\Local\Continuum\anaconda3\lib\site-packages\google\cloud\bigquery\client.py", line 43, in <module>

    from google import resumable_media

ImportError: cannot import name 'resumable_media' from 'google' (unknown location)

为了让这件事发挥作用,我需要执行哪些步骤?

【问题讨论】:

标签: python google-app-engine google-cloud-platform google-bigquery


【解决方案1】:

除了@Hitobat 在他的comment 中提到的内容(重新安装google-cloud-bigquery 模块),您还可以尝试只安装失败的模块,即模块google-resumable-media

要验证哪个模块丢失或可能已过时,您可以运行以下命令:

点冻结 | grep 谷歌

这将列出您已安装的所有 google 模块。

【讨论】:

    【解决方案2】:

    只是为了确保您确实安装了所需的官方软件包,您应该首先使用此源https://googleapis.dev/python/bigquery/latest/index.html

    考虑到您使用虚拟环境,他们会指定安装

    Windows
    pip install virtualenv
    virtualenv <your-env>
    <your-env>\Scripts\activate
    <your-env>\Scripts\pip.exe install google-cloud-bigquery
    

    如果您做得对,安装 Google Cloud Python 库通常会安装所需的依赖项(在您的情况下是 google-resumable-media)

    pip install google-cloud
    

    我认为您的问题不仅仅是 Anaconda/Local Python 路径问题...所以您可以先验证 Google BigQuery 的 Python 客户端的安装位置。

    如果您确实想使用 Anaconda 环境,请尝试从 Anaconda Navigator 环境管理器中安装软件包...这应该可以解决依赖关系问题。

    【讨论】:

      【解决方案3】:

      创建具有所需 BigQuery 角色的服务帐号并下载 JSON 密钥文件(例如:data-lab.json)。使用以下代码:

      import os
      os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = "data-lab.json"
      from google.cloud import bigquery
      client = bigquery.Client()
      

      【讨论】:

        【解决方案4】:

        这就是我所做的并且工作正常。我使用 Colab/Jupyter Notebooks 访问 Bigquery。

        第一个选项是使用浏览器进行身份验证

        from google.colab import auth
        auth.authenticate_user()
        
        

        第二种选择是使用上面解释的服务帐户进行身份验证

        一旦你完成了身份验证,那么下面的代码应该可以工作

        from google.cloud import bigquery
        
        client = bigquery.Client(project='project_id')
        %load_ext google.cloud.bigquery
        

        使用魔术链接运行 Bigquery 命令

        %%bigquery --project project_id
        select * from table limit 1 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-21
          • 1970-01-01
          • 2017-06-26
          • 1970-01-01
          相关资源
          最近更新 更多