在GCP JupyterLab导入BigQuery库时遇AttributeError问题求助
GCP JupyterLab中导入google-cloud-bigquery时的AttributeError解决方案
问题重现
执行以下导入代码时触发错误:
from google.cloud import storage from google.cloud import bigquery import pandas as pd from sklearn import datasets
错误信息
AttributeError Traceback (most recent call last) /tmp/ipykernel_5450/3407211047.py in 1 from google.cloud import storage 2 from google.cloud import bigquery 3 4 import pandas as pd 5 from sklearn import datasets /opt/conda/lib/python3.7/site-packages/google/cloud/bigquery/__init__.py in 33 __version__ = bigquery_version.__version__ 34 35 from google.cloud.bigquery.client import Client 36 from google.cloud.bigquery.dataset import AccessEntry 37 from google.cloud.bigquery.dataset import Dataset /opt/conda/lib/python3.7/site-packages/google/cloud/bigquery/client.py in 74 75 76 from google.cloud.bigquery import _job_helpers 77 from google.cloud.bigquery._job_helpers import make_job_id as _make_job_id 78 from google.cloud.bigquery._helpers import _get_sub_prop /opt/conda/lib/python3.7/site-packages/google/cloud/bigquery/_job_helpers.py in 22 from google.api_core import retry as retries 23 24 from google.cloud.bigquery import job 25 26 # Avoid circular imports /opt/conda/lib/python3.7/site-packages/google/cloud/bigquery/job/__init__.py in 25 from google.cloud.bigquery.job.base import TransactionInfo 26 from google.cloud.bigquery.job.base import UnknownJob 27 from google.cloud.bigquery.job.copy_ import CopyJob 28 from google.cloud.bigquery.job.copy_ import CopyJobConfig 29 from google.cloud.bigquery.job.copy_ import OperationType /opt/conda/lib/python3.7/site-packages/google/cloud/bigquery/job/copy_.py in 19 from google.cloud.bigquery.encryption_configuration import EncryptionConfiguration 20 from google.cloud.bigquery import _helpers 21 from google.cloud.bigquery.table import TableReference 22 23 from google.cloud.bigquery.job.base import _AsyncJob /opt/conda/lib/python3.7/site-packages/google/cloud/bigquery/table.py in 55 import google.cloud._helpers # type: ignore 56 from google.cloud.bigquery import _helpers 57 from google.cloud.bigquery import _pandas_helpers 58 from google.cloud.bigquery.exceptions import LegacyBigQueryStorageError 59 from google.cloud.bigquery.schema import _build_schema_resource /opt/conda/lib/python3.7/site-packages/google/cloud/bigquery/_pandas_helpers.py in 49 date_dtype_name = time_dtype_name = "" # Use '' rather than None because pytype 50 51 pyarrow = _helpers.PYARROW_VERSIONS.try_import() 52 53 try: AttributeError: module 'google.cloud.bigquery._helpers' has no attribute 'PYARROW_VERSIONS'
已尝试的无效操作
- 安装pyarrow:
conda install -c conda-forge pyarrow - 升级相关库:
pip install --upgrade --force-reinstall google-cloud-bigquery-storage pip install --upgrade google-cloud-bigquery pip install --upgrade google-cloud-storage
解决方案
这个错误源于google-cloud-bigquery与依赖库(如pyarrow、google-api-core)版本不兼容,或conda与pip混用导致的依赖冲突。可按以下步骤解决:
方法1:统一用pip管理依赖,重装指定版本组合
- 卸载冲突包:
pip uninstall -y google-cloud-bigquery google-cloud-bigquery-storage pyarrow google-api-core - 安装适配Python3.7的兼容版本:
pip install google-cloud-bigquery==3.10.0 google-cloud-bigquery-storage==2.20.0 pyarrow==12.0.1 google-api-core==2.11.1
方法2:清理conda与pip的冲突环境
若使用conda环境,避免混用两种包管理器:
- 移除pip安装的相关包:
pip uninstall -y google-cloud-bigquery google-cloud-bigquery-storage - 用conda安装兼容版本:
conda install -c conda-forge google-cloud-bigquery=3.10.0 google-cloud-bigquery-storage=2.20.0 pyarrow=12.0.1
方法3:创建全新conda环境(推荐)
- 创建Python3.7专属环境:
conda create -n gcp-bq-env python=3.7 -y - 激活环境:
conda activate gcp-bq-env - 一键安装所有依赖:
conda install -c conda-forge google-cloud-bigquery google-cloud-storage pandas scikit-learn pyarrow -y
完成操作后,重启JupyterLab内核,重新执行导入代码即可解决问题。
内容的提问来源于stack exchange,提问作者lisha
相关产品推荐
相关产品推荐

