使用Python的BigQueryAPI客户端库时无法访问网络

使用Python的BigQueryAPI客户端库时无法访问网络,python,google-bigquery,google-compute-engine,Python,Google Bigquery,Google Compute Engine,我用的是谷歌计算引擎。在进行查询时,它抛出网络无法访问错误 [INFO:2018-01-02 16:16:04,887:oauth2client.transport] Attempting refresh to obtain initial access_token [INFO:2018-01-02 16:16:04,924:oauth2client.client] Refreshing access_token Traceback (most recent call last): File

我用的是谷歌计算引擎。在进行查询时,它抛出网络无法访问错误

[INFO:2018-01-02 16:16:04,887:oauth2client.transport] Attempting refresh to obtain initial access_token
[INFO:2018-01-02 16:16:04,924:oauth2client.client] Refreshing access_token
Traceback (most recent call last):
  File "/test/data/reports/ga_bigquery.py", line 130, in ga_table_string
    if bq_dataset.table("ga_sessions_{}".format(str_date)).exists():
  File "/test/data/reports/.venv/lib/python2.7/site-packages/gcloud/bigquery/table.py", line 472, in exists
    query_params={'fields': 'id'})
  File "/test/data/reports/.venv/lib/python2.7/site-packages/gcloud/connection.py", line 343, in api_request
    target_object=_target_object)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/gcloud/connection.py", line 241, in _make_request
    return self._do_request(method, url, headers, data, target_object)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/gcloud/connection.py", line 270, in _do_request
    body=data)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/oauth2client/transport.py", line 153, in new_request
    credentials._refresh(orig_request_method)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/oauth2client/client.py", line 765, in _refresh
    self._do_refresh_request(http_request)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/oauth2client/client.py", line 797, in _do_refresh_request
    self.token_uri, method='POST', body=body, headers=headers)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/httplib2/__init__.py", line 1609, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/httplib2/__init__.py", line 1351, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/test/data/reports/.venv/lib/python2.7/site-packages/httplib2/__init__.py", line 1272, in _conn_request
    conn.connect()
  File "/test/data/reports/.venv/lib/python2.7/site-packages/httplib2/__init__.py", line 1075, in connect
    raise socket.error, msg
socket.error: [Errno 101] Network is unreachable
原因可能是什么

我使用以下选项运行代码:

[root@myserver]# strace -ff -e poll,select,connect,recvfrom,sendto python run.py --date=20180102 >> strace.log

[root@myserver]# cat strace.log | grep unreachable
connect(3, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, “2404:6800:4003:c02::54”, &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network isunreachable)
connect(4, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, “2404:6800:4003:803::200a”, &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
connect(5, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, “2404:6800:4003:808::200d”, &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
connect(6, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, “2404:6800:4003:c03::5f”, &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network isunreachable)
从日志中可以看出,计算实例正在阻止传出的ipv6请求。
是否有任何方法可以在google compute engine中取消拒绝ipv6请求?

首先,如果您正在使用,您可能需要尝试

其中一个原因可能是API客户机库用于向BigQuery发出请求,而BigQuery具有。云库使用更标准的库,因此应该更可靠


第二,即使不切换库,也应该更改正在使用的身份验证库。堆栈跟踪显示的是
oauth2client
,但是。用于将API客户端库与
google auth
库一起使用。

网络问题?它似乎工作了几次,然后卡住,然后出现错误。