How to solve "ImportError: No module named google.auth"?

13,208

Your google.auth is installed in the system's Python site packages, not in your app:

Location: /Users/.../Library/Python/2.7/lib/python/site-packages

You need to install your app's python dependencies inside your app instead - note the -t lib/ pip option in the Copying a third-party library procedure you should follow:

  1. Use pip (version 6 or later) with the -t <directory> flag to copy the libraries into the folder you created in the previous step. For example:

    pip install -t lib/ <library_name>
    
Share:
13,208
Stiño
Author by

Stiño

Updated on July 20, 2022

Comments

  • Stiño
    Stiño almost 2 years

    I'm locally running a standard app engine environment through dev_appserver and cannot get rid of the following error:

    ImportError: No module named google.auth

    Full traceback (replaced personal details with ...):

    Traceback (most recent call last):
      File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
        handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
      File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
        handler, path, err = LoadObject(self._handler)
      File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
        obj = __import__(path[0])
      File "/Users/.../.../main.py", line 6, in <module>
        from services.get_campaigns import get_campaigns
      File "/Users/.../.../get_campaigns.py", line 3, in <module>
        from googleads import adwords
      File "/Users/.../.../lib/googleads/__init__.py", line 17, in <module>
        from ad_manager import AdManagerClient
      File "/Users/.../lib/googleads/ad_manager.py", line 28, in <module>
        import googleads.common
      File "/Users/.../lib/googleads/common.py", line 51, in <module>
        import googleads.oauth2
      File "/Users/.../lib/googleads/oauth2.py", line 28, in <module>
        import google.auth.transport.requests
      File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1154, in load_module
        raise ImportError('No module named %s' % fullname)
    ImportError: No module named google.auth
    

    I do have google.auth installed, as pip show google.auth shows:

    Name: google-auth
    Version: 1.6.3
    Summary: Google Authentication Library
    Home-page: https://github.com/GoogleCloudPlatform/google-auth-library-python
    Author: Google Cloud Platform
    Author-email: [email protected]
    License: Apache 2.0
    Location: /Users/.../Library/Python/2.7/lib/python/site-packages
    Requires: rsa, pyasn1-modules, cachetools, six
    Required-by: googleads, google-auth-oauthlib, google-auth-httplib2, google-api-python-client
    

    I have already upgraded all modules that require google.auth - googleads, google-auth-oauthlib, google-auth-httplib2, google-api-python-client - but without results.

    I'm not quite sure what next actions to take in order to debug this issue. Anyone here can point me in the right direction?

  • Dan Cornilescu
    Dan Cornilescu about 5 years
    That moves you to the 2nd generation standard environment, where the Private dependencies applies. But you still need to install your dependencies in your app, otherwise it won't work when deployed on GAE.