Python Django ImportError: cannot import name 'Required' from 'typing_extensions'

Версия Django составляет 3.2.9.

Версия Python - 3.10.0.

А typing_extensions 3.10.0.2

Я новичок в кодинге, python и т.д., и не могу понять, в чем проблема. Следуя учебнику django, я создал приложение и успешно запустил сервер, но через день, когда я попытался сделать это снова, я столкнулся с этой проблемой:

File "C:\Users\fused\Desktop\code\py\myproject\myapp\views.py", line 1, in <module>
from typing_extensions import Required
ImportError: cannot import name 'Required' from 'typing_extensions' (C:\Users\fused\AppData\Local\Programs\Python\Python310\lib\site-packages\typing_extensions.py)

После попытки запустить сервер с помощью 'python manage.py runserver' появилась эта проблема, пробовал переустанавливать typing_extensions, проверял версии всего, но ничего не решило проблему.

Если потребуется дополнительная информация, я отвечу с ней. Заранее спасибо

Попробуйте обновить свои расширения для типизации...

pip install typing-extensions --upgrade

Похоже, что Required и NotRequired еще не реализованы в typing_extensions.

PEP 655 гласит:

Цель состоит в том, чтобы иметь возможность сделать следующее утверждение:

Программа проверки типов mypy поддерживает Required и NotRequired. Эталонная реализация компонента времени выполнения предоставляется в модуле typing_extensions.

.

Это только цель - это не текущее состояние. Она не указана в typing_extensions' README и не появляется в исходном коде.

По-моему, очень смущает то, что pylance/pyright в vscode может разрешить typing_extensions.Required и typing_extensions.NotRequired, хотя в модуле это не реализовано.

В качестве обходного пути можно попробовать заменить from typing_extensions import Required на

try:
    from typing_extensions import Required
except ImportError:
    from typing import Generic, TypeVar

    T = TypeVar("T")

    class Required(Generic[T]):
        pass
Вернуться на верх