ImportError: cannot import name ‘Literal’ from ‘typing’

Using Literal in Python 3.8 and later

from typing import Literal

Using Literal in all Python versions (1)

Literal was added to typing.py in 3.8, but you can use Literal in older versions anyway.

First install typing_extensions (pip install typing_extensions) and then

from typing_extensions import Literal

This approach is supposed to work also in Python 3.8 and later.

Using Literal in all Python versions (2)

For completeness, I’m also adding the try-except approach to import Literal:

try:
    from typing import Literal
except ImportError:
    from typing_extensions import Literal

This should also work for all Python versions, given that typing_extensions is installed if you’re using Python 3.7 or older.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)