Pythonのgoogle-cloud-datastoreライブラリで急にAttributeErrorが発生するようになった
GCPのデータストアにアクセスするコードを書いていまして、3日前までエラーなく動いていたのですが、2日前から急に後述のエラーがでるようになりました。
本日、pip uninstallしてpip installし直したところエラーは消えました。
このライブラリは先週にインストールしたもので、それ以降OSやPythonやライブラリのアップデートをした記憶はありません。
質問
- なぜ急にエラーになるようになったのか
特にアップデートなどしてないのですが、挙動がかわることなんてないと思ってます。なにか思い当たる原因があればアドバイスいただきたいです - なぜインストールし直したら直ったのか
ライブラリの中がなにか変になってたということなのでしょうか。(まぁ結論はそうで、結局は上の質問になると思うのですが)
データストアにアクセスするコード
from google.cloud import datastore
client = datastore.Client(project='my_project_id')
query = client.query(kind='Sample')
query.add_filter('user_id', '=', 1)
query.fetch(limit=5)
エラー
AttributeError Traceback (most recent call last)
<ipython-input-16-a55ac532af71> in <module>()
----> 7 query.fetch(limit=5):
/anaconda3/lib/python3.6/site-packages/google/api_core/page_iterator.py in _items_iter(self)
197 def _items_iter(self):
198 """Iterator for each item returned."""
--> 199 for page in self._page_iter(increment=False):
200 for item in page:
201 self.num_results += 1
/anaconda3/lib/python3.6/site-packages/google/api_core/page_iterator.py in _page_iter(self, increment)
228 Page: each page of items from the API.
229 """
--> 230 page = self._next_page()
231 while page is not None:
232 self.page_number += 1
/anaconda3/lib/python3.6/site-packages/google/cloud/datastore/query.py in _next_page(self)
499 )
500 entity_pbs = self._process_query_results(response_pb)
--> 501 return page_iterator.Page(self, entity_pbs, self._item_to_value)
502
503
AttributeError: 'Iterator' object has no attribute '_item_to_value'
ぐぐったところ、、、
イシューは見つかりましたが、再現しないということで修正されずにクローズされてました。
https://github.com/GoogleCloudPlatform/google-cloud-python/issues/5169