Python3.6.9环境安装google-cloud-bigquery遇future feature annotations错误
Python 3.6.9安装google-cloud-bigquery报错解决
环境背景
- Python版本:3.6.9(虚拟环境)
- 已安装包清单:
- Cython (0.29.35)
- joblib (1.1.1)
- numpy (1.19.5)
- pandas (1.1.5)
- pip (9.0.1)
- pkg-resources (0.0.0)
- python-dateutil (2.8.2)
- pytz (2023.3)
- scikit-learn (0.24.2)
- scipy (1.5.4)
- setuptools (39.0.1)
- six (1.16.0)
- sklearn (0.0.post5)
- threadpoolctl (3.1.0)
报错情况
执行pip install google-cloud-bigquery时失败,核心错误出在pyarrow的安装环节:
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-dfz5x1uv/pyarrow/
具体语法错误如下:
File "/tmp/pip-build-dfz5x1uv/pyarrow/.eggs/setuptools_scm-7.1.0-py3.6.egg/setuptools_scm/__init__.py", line 5 from __future__ import annotations ^ SyntaxError: future feature annotations is not defined
问题根源
from __future__ import annotations是Python 3.7及以上版本才支持的语法,Python 3.6不兼容。- 最新版google-cloud-bigquery依赖的pyarrow版本会自动拉取setuptools_scm 7.1.0,而该版本已经放弃对Python 3.6的支持。
- 环境里的pip(9.0.1)和setuptools(39.0.1)版本太老,无法正确解析包的兼容性约束,导致拉取了不兼容的依赖包。
解决步骤
1. 先升级pip和setuptools到Python 3.6支持的最高版本
pip install pip==21.3.1 setuptools==59.6.0
(pip 21.x是支持Python 3.6的最后一个大版本,setuptools 59.x同理,更高版本不再兼容3.6)
2. 安装兼容Python 3.6的google-cloud-bigquery版本
google-cloud-bigquery从3.0.0开始不再支持Python 3.6,所以指定安装2.x系列的最后兼容版本:
pip install google-cloud-bigquery==2.34.4
这个版本依赖的pyarrow和setuptools_scm都能适配Python 3.6。
3. 验证安装成功
执行以下命令确认安装状态:
pip show google-cloud-bigquery
输出中显示版本为2.34.4即为成功。
内容的提问来源于stack exchange,提问作者Sruthi
相关产品推荐
相关产品推荐

