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