Problem:
You are trying to connect to the Google Cloud Storage object database:
#!/usr/bin/env python3 from google.cloud import datastore # Create, populate and persist an entity entity = datastore.Entity(key=datastore.Key('MyEntityKind')) # Line of error # ...
but when running that code, you get this error message:
Traceback (most recent call last): File "./IndexIntoDB.py", line 4, in <module> entity = datastore.Entity(key=datastore.Key('MyEntityKind')) File "/usr/local/lib/python3.6/dist-packages/google/cloud/datastore/key.py", line 109, in __init__ self._project = _validate_project(project, parent) File "/usr/local/lib/python3.6/dist-packages/google/cloud/datastore/key.py", line 512, in _validate_project raise ValueError("A Key must have a project set.") ValueError: A Key must have a project set.
Solution:
Note: While the solution below fixes the error message listed above, you might be more interested in having a look at this minimal entity insertion example
As the error message indicates, you need to add a project name. If you don’t know the project name, go to the Google Cloud Console, select the right project at the top and then look at the URL:
https://console.cloud.google.com/datastore/welcome?project=perceptive-tape-12345
In this example, the project ID (which you have to use in the Python code is perceptive-tape-12345
.
See also the Keys section of the google-cloud-datastore python documentation.