juanifioren / django-oidc-provider

OpenID Connect and OAuth2 provider implementation for Djangonauts.
http://django-oidc-provider.readthedocs.org
MIT License
423 stars 238 forks source link

Django 4.2 Import Error #412

Closed phass closed 1 year ago

phass commented 1 year ago

Hello, when using this with Django 4.x I got below error: Is this an issue with oidc library?

ImportError: cannot import name 'force_text' from 'django.utils.encoding' (/home//PycharmProjects//venv/lib/python3.10/site-packages/django/utils/encoding.py)

Environment:

Request Method: GET Request URL: http://*

Django Version: 4.2 Python Version: 3.10.12 Installed Applications: ('admin_tools', 'admin_tools.theming', 'admin_tools.menu', 'admin_tools.dashboard', 'django.contrib.admin', 'django.contrib.sites', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_filters', 'rest_framework', 'oidc_provider', 'debug_toolbar') Installed Middleware: ['api.middleware.DisableCSRF', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'corsheaders.middleware.CorsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware']

Traceback (most recent call last): File "/home//PycharmProjects//venv/lib/python3.10/site-packages/oauth2_provider/settings.py", line 108, in import_from_string module = importlib.import_module(module_path) File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1050, in _gcd_import

File "", line 1027, in _find_and_load

File "", line 1006, in _find_and_load_unlocked

File "", line 688, in _load_unlocked

File "", line 883, in exec_module

File "", line 241, in _call_with_frames_removed

File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/oauth2_validators.py", line 19, in from .models import ( File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/models.py", line 18, in from .validators import validate_uris File "/home/*/PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/validators.py", line 7, in from django.utils.encoding import force_text

During handling of the above exception (cannot import name 'force_text' from 'django.utils.encoding' (/home//PycharmProjects//venv/lib/python3.10/site-packages/django/utils/encoding.py)), another exception occurred: File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, callback_kwargs) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view return view_func(args, kwargs) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/django/views/generic/base.py", line 104, in view return self.dispatch(request, args, *kwargs) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/views.py", line 509, in dispatch response = self.handle_exception(exc) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/views.py", line 469, in handle_exception self.raise_uncaught_exception(exc) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception raise exc File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/views.py", line 497, in dispatch self.initial(request, args, *kwargs) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/views.py", line 414, in initial self.perform_authentication(request) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/views.py", line 324, in perform_authentication request.user File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/request.py", line 227, in user self._authenticate() File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/rest_framework/request.py", line 380, in _authenticate user_auth_tuple = authenticator.authenticate(self) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/contrib/rest_framework/authentication.py", line 17, in authenticate oauthlib_core = get_oauthlib_core() File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/oauth2_backends.py", line 195, in get_oauthlib_core validator = oauth2_settings.OAUTH2_VALIDATOR_CLASS() File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/settings.py", line 142, in getattr val = perform_import(val, attr) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/settings.py", line 96, in perform_import return import_from_string(val, setting_name) File "/home//PycharmProjects/nugat/venv/lib/python3.10/site-packages/oauth2_provider/settings.py", line 112, in import_from_string raise ImportError(msg)

Exception Type: ImportError at /api_list Exception Value: Could not import 'oauth2_provider.oauth2_validators.OAuth2Validator' for setting 'OAUTH2_VALIDATOR_CLASS'. ImportError: cannot import name 'force_text' from 'django.utils.encoding' (/home/*/PycharmProjects/nugat/venv/lib/python3.10/site-packages/django/utils/encoding.py).

juanifioren commented 1 year ago

Hi, as you can see on traceback.. is something related to oauth2_provider library. We do not have that library in our requirement list so should be something related to your project setup.

phass commented 1 year ago

Hi, ok, thx.