import cloudstorage, SyntaxError: invalid syntax

2019-02-22 23:12发布

问题:

I would like to use Google Cloud Storage Client Library Functions.

For that I have to import cloudstorage. To get the cloudstorage I download Google Cloud Storage client library.

I try to import cloudstorage using python -c "import cloudstorage". I get the following error:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/fghavamian/Documents/PhD_work/Codes/python/convnet_gcloud/cloudstorage/__init__.py", line 20, in <module>
    from .api_utils import RetryParams
  File "/Users/fghavamian/Documents/PhD_work/Codes/python/convnet_gcloud/cloudstorage/api_utils.py", line 173
    except self.retriable_exceptions, e:
                                    ^
SyntaxError: invalid syntax

Am I missing something?

回答1:

As one of the comments says, this is an issue with using Python 3, where the syntax has changed. It looks like the Google Cloud Storage library you are using is not as well supported and that the more recommended library is google-cloud-python.

You can install it with the command below, assuming you have installed the Google Cloud SDK:

pip install google-cloud-storage

Here is some sample code (from the docs) that shows how to read and write to a bucket.

from google.cloud import storage
client = storage.Client()
# https://console.cloud.google.com/storage/browser/[bucket-id]/
bucket = client.get_bucket('bucket-id-here')
# Then do other things...
blob = bucket.get_blob('remote/path/to/file.txt')
print(blob.download_as_string())  # read content from bucket and print to stdout
blob.upload_from_string('New contents!')
blob2 = bucket.blob('remote/path/storage.txt')
blob2.upload_from_filename(filename='/local/path.txt')  # write from path.txt to storage.txt