GSUTIL command error with Python module

From InfiniteERP Wiki
Jump to: navigation, search

Introduction

GSUTIL adalah package aplikasi dari Google Cloud SDK yang dapat digunakan untuk Copy atau Move files dari VM ke Cloud Storage dan berbagai fungsi lainnya.

Problem

Error occur during execute command :

sudo gsutil -m mv /home/user/appl/SG-infinite-20*.zip gs://sg-storage

Error message:

Traceback (most recent call last):
  File "/usr/lib/google-cloud-sdk/platform/gsutil/gsutil", line 21, in <module>
    gsutil.RunMain()
  File "/usr/lib/google-cloud-sdk/platform/gsutil/gsutil.py", line 150, in RunMain
    import gslib.__main__
  File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/__main__.py", line 53, in <module>
    import boto
  File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/vendored/boto/boto/__init__.py", line 1216, in <module>
    boto.plugin.load_plugins(config)
  File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/vendored/boto/boto/plugin.py", line 93, in load_plugins
    _import_module(file)
  File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/vendored/boto/boto/plugin.py", line 75, in _import_module
    return imp.load_module(name, file, filename, data)
  File "/usr/lib/google-cloud-sdk/platform/bundledpythonunix/lib/python3.9/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/lib/google-cloud-sdk/platform/bundledpythonunix/lib/python3.9/imp.py", line 171, in load_source
    module = _load(spec)
  File "/usr/share/google/boto/boto_plugins/compute_auth.py", line 18, in <module>
    import urllib2
ModuleNotFoundError: No module named 'urllib2'

Solution

This error could happen after upgrade Google Cloud SDK to the latest version. You might have multiple version of python then run following command to use the latest version:

 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1

then you will receive below information:

update-alternatives: using /usr/bin/python3 to provide /usr/bin/python (python) in auto mode

Then update the file compute_auth.py, change the line import urllib2 to import urllib.request as urllib2.

It should look like below:
Compute auth python.png