ModuleNotFoundError: No module named 'jose'

Question:

I am using python-social-auth in my django project to use social platforms for authentication in my project. It all worked well but am getting this error ModuleNotFoundError: No module named 'jose'
This is the whole error:

[05/Apr/2020 14:01:00] "GET /accounts/login/ HTTP/1.1" 200 3058
Internal Server Error: /login/twitter/
Traceback (most recent call last):
  File "C:Program FilesPython37libsite-packagessocial_corebackendsutils.py", line 50, in get_backend
    return BACKENDSCACHE[name]
KeyError: 'twitter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:UsersAhmedAppDataRoamingPythonPython37site-packagesdjangocorehandlersexception.py", line 34, in inner
    response = get_response(request)
  File "C:UsersAhmedAppDataRoamingPythonPython37site-packagesdjangocorehandlersbase.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:UsersAhmedAppDataRoamingPythonPython37site-packagesdjangocorehandlersbase.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:UsersAhmedAppDataRoamingPythonPython37site-packagesdjangoviewsdecoratorscache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "C:Program FilesPython37libsite-packagessocial_djangoutils.py", line 46, in wrapper
    backend, uri)
  File "C:Program FilesPython37libsite-packagessocial_djangoutils.py", line 27, in load_backend
    Backend = get_backend(BACKENDS, name)
  File "C:Program FilesPython37libsite-packagessocial_corebackendsutils.py", line 53, in get_backend
    load_backends(backends, force_load=True)
  File "C:Program FilesPython37libsite-packagessocial_corebackendsutils.py", line 35, in load_backends
    backend = module_member(auth_backend)
  File "C:Program FilesPython37libsite-packagessocial_coreutils.py", line 62, in module_member
    module = import_module(mod)
  File "C:Program FilesPython37libsite-packagessocial_coreutils.py", line 56, in import_module
    __import__(name)
  File "C:Program FilesPython37libsite-packagessocialbackendsgoogle.py", line 3, in <module>
    from social_core.backends.google_openidconnect import GoogleOpenIdConnect
  File "C:Program FilesPython37libsite-packagessocial_corebackendsgoogle_openidconnect.py", line 5, in <module>
    from .open_id_connect import OpenIdConnectAuth
  File "C:Program FilesPython37libsite-packagessocial_corebackendsopen_id_connect.py", line 6, in <module>
    from jose import jwk, jwt
ModuleNotFoundError: No module named 'jose'
[05/Apr/2020 14:01:06] "GET /login/twitter/?next=/accounts/login/ HTTP/1.1" 500 132103

I am pretty new to python and can’t figure out what the issue is.

Asked By: Rakesh Majhi

||

Answers:

pip3 install social-auth-core[openidconnect]

python-jose is part of openid connect integration, the requirement is
defined in requirements-openidconnect.txt and to install it you need
to set the openidconnect extra require.

To mitigate this, add this dependency to your requirements.txt file:
social-auth-core[openidconnect] or don’t import openidconnect modules.

source: https://github.com/python-social-auth/social-app-django/issues/178

Answered By: Vikas Mulaje

As explained by Vikas, this is an issue with the package.
To solve it out you should just run the following command in your python environment:

pip install social-auth-core
Answered By: aarcas

Install jose by running:

pip install python-jose>=3.0.0
Answered By: rochi

I had faced a similar issue,where the module "python-jose" was installed but still thows the same error. Fixed by trying :

import jwt

Instead of :

from jose import jwt
Answered By: Ashis Solomon