无法从“typing_extensions”导入名称“X”[已解决]

目录

Cannot import name ‘Required’ from ‘typing_extensions’

  1. 无法从“typing_extensions”导入名称“Required”
  2. 无法从“typing_extensions”导入名称“ParamSpec”
  3. 无法从“typing_extensions”导入名称“TypeGuard”

无法从“typing_extensions”导入名称“Required”

“ImportError: cannot import name ‘Required’ from ‘typing_extensions’” 当我们有一个过时的模块版本时发生typing-extensions

解决该错误,typing-extensions通过运行
pip install typing-extensions --upgrade命令进行升级。

importerror 无法导入键入扩展名所需的名称

ImportError: cannot import name 'Required' from 'typing_extensions' (/home/borislav/Desktop/bobbyhadz_python/venv2/lib/python3.10/site-packages/typing_extensions.py) ImportError: cannot import name 'NotRequired' from 'typing_extensions' (/home/borislav/Desktop/bobbyhadz_python/venv2/lib/python3.10/site-packages/typing_extensions.py)

RequiredNotRequired已添加到
typing-extensions
模块起始版本中
4.0.0

打开终端并运行以下命令来升级
typing-extensions模块。

pip install typing-extensions --upgrade pip3 install typing-extensions --upgrade # 👇️ if you don't have pip in PATH environment variable python -m pip install typing-extensions --upgrade python3 -m pip install typing-extensions --upgrade # 👇️ py alias (Windows) py -m pip install typing-extensions --upgrade # 👇️ for Anaconda conda install -c conda-forge typing-extensions conda update typing-extensions # 👇️ for Jupyter Notebook !pip install typing-extensions --upgrade

升级打字扩展

–upgrade选项将指定的包升级到最新的可用版本。

导入RequiredNotRequired

升级typing-extensions模块后,您应该能够按如下方式导入Required和类。NotRequired

main.py
from typing_extensions import Required, NotRequired print(Required) print(NotRequired)

您可以使用该pip show typing-extensions命令来检查您的模块版本。

pip show typing-extensions pip3 show typing-extensions

检查模块版本

使用内置typing模块代替

如果您使用的 Python 版本大于或等于3.11,您还可以使用内置的typing模块导入
Required类。

main.py
# ✅ for Python versions >= 3.11 from typing import Required, NotRequired print(Required) print(NotRequired)

您可以使用python --version命令检查您的 Python 版本。

python --version python3 --version

获取 python 版本

您可以通过从
官方 python.org 网站下载安装程序并运行它来升级您的 Python 版本。

如果出现提示,请确保勾选以下选项:

  • 为所有用户安装启动器(推荐)
  • 将 Python 添加到 PATH(这会将 Python 添加到您的 PATH 环境变量)

如果这些建议都没有帮助,您可以尝试升级您环境中的所有包。

升级你环境中的所有包

升级所有过时包的最直接方法是使用 Python 脚本。

main.py
import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)
您可以将脚本存储在 Python 文件中,例如main.py并运行该文件python main.py以升级所有过时的包。

以下是可用于升级所有过时软件包的替代命令。

# 👇️ macOS or Linux pip install -U `pip list --outdated | awk 'NR>2 {print $1}'` # 👇️ Windows for /F "delims= " %i in ('pip list --outdated') do pip install -U %i

如果您使用
requirements.txt文件,您可以使用以下命令更新它。

pip freeze > requirements.txt

目录

  1. 无法从“typing_extensions”导入名称“ParamSpec”
  2. 无法从“typing_extensions”导入名称“TypeGuard”

无法从“typing_extensions”导入名称“ParamSpec”

“ImportError: cannot import name ‘ParamSpec’ from ‘typing_extensions’” 当我们有一个过时的模块版本时发生typing-extensions

解决该错误,typing-extensions通过运行
pip install typing-extensions --upgrade命令进行升级。

importerror 无法从键入扩展中导入名称 paramspec

ImportError: cannot import name 'ParamSpec' from 'typing_extensions' (/home/borislav/Desktop/bobbyhadz_python/venv2/lib/python3.10/site-packages/typing_extensions.py)

打开终端并运行以下命令来升级
typing-extensions模块。

pip install typing-extensions --upgrade pip3 install typing-extensions --upgrade # 👇️ if you don't have pip in PATH environment variable python -m pip install typing-extensions --upgrade python3 -m pip install typing-extensions --upgrade # 👇️ py alias (Windows) py -m pip install typing-extensions --upgrade # 👇️ for Anaconda conda install -c conda-forge typing-extensions conda update typing-extensions # 👇️ for Jupyter Notebook !pip install typing-extensions --upgrade

–upgrade选项将指定的包升级到最新的可用版本。

升级typing-extensions模块后,您应该能够ParamSpec按如下方式导入类。
main.py
from typing_extensions import ParamSpec print(ParamSpec)

如果您使用fastapi包并且错误仍然存​​在,
请尝试重新安装它

pip uninstall fastapi typing-extensions -y pip install fastapi typing-extensions --no-cache-dir pip3 uninstall fastapi typing-extensions -y pip3 install fastapi typing-extensions --no-cache-dir python -m pip uninstall fastapi typing-extensions -y python -m pip install fastapi typing-extensions --no-cache-dir python3 -m pip uninstall fastapi typing-extensions -y python3 -m pip install fastapi typing-extensions --no-cache-dir # 👇️ for Anaconda conda remove typing-extensions conda remove fastapi conda install -c conda-forge typing-extensions conda install -c conda-forge fastapi # 👇️ for Jupyter Notebook !pip uninstall fastapi typing-extensions -y !pip install fastapi typing-extensions --no-cache-dir

您可以在以下文章中阅读有关 pip--no-cache-dir选项
的更多信息

如果你使用的 Python 版本大于或等于3.10,你还可以使用内置的typing模块导入
ParamSpec
类。

main.py
# ✅ for Python versions >= 3.10 from typing import ParamSpec print(ParamSpec)

您可以使用python --version命令检查您的 Python 版本。

python --version python3 --version

获取 python 版本

您可以通过从
官方 python.org 网站下载安装程序并运行它来升级您的 Python 版本。

如果出现提示,请确保勾选以下选项:

  • 为所有用户安装启动器(推荐)
  • 将 Python 添加到 PATH(这会将 Python 添加到您的 PATH 环境变量)

如果这些建议都没有帮助,您可以尝试升级您环境中的所有包。

升级你环境中的所有包

升级所有过时包的最直接方法是使用 Python 脚本。

main.py
import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)
您可以将脚本存储在 Python 文件中,例如main.py并运行该文件python main.py以升级所有过时的包。

以下是可用于升级所有过时软件包的替代命令。

# 👇️ macOS or Linux pip install -U `pip list --outdated | awk 'NR>2 {print $1}'` # 👇️ Windows for /F "delims= " %i in ('pip list --outdated') do pip install -U %i

如果您使用requirements.txt文件,则可以使用以下命令更新它。

pip freeze > requirements.txt

无法从“typing_extensions”导入名称“TypeGuard”

“ImportError: cannot import name ‘TypeGuard’ from ‘typing_extensions’” 当我们有一个过时的模块版本时发生typing-extensions

解决该错误,typing-extensions通过运行
pip install typing-extensions --upgrade命令进行升级。

importerror 无法从键入扩展中导入名称类型保护

ImportError: cannot import name 'TypeGuard' from 'typing_extensions' (/home/borislav/Desktop/bobbyhadz_python/venv2/lib/python3.10/site-packages/typing_extensions.py)

打开终端并运行以下命令来升级
typing-extensions模块。

pip install typing-extensions --upgrade pip3 install typing-extensions --upgrade # 👇️ if you don't have pip in PATH environment variable python -m pip install typing-extensions --upgrade python3 -m pip install typing-extensions --upgrade # 👇️ py alias (Windows) py -m pip install typing-extensions --upgrade # 👇️ for Anaconda conda install -c conda-forge typing-extensions conda update typing-extensions # 👇️ for Jupyter Notebook !pip install typing-extensions --upgrade

–upgrade选项将指定的包升级到最新的可用版本。

升级typing-extensions模块后,您应该能够TypeGuard按如下方式导入。
main.py
from typing_extensions import TypeGuard print(TypeGuard)

您可以使用该pip show typing-extensions命令来检查您的模块版本。

pip show typing-extensions pip3 show typing-extensions

如果你使用的 Python 版本大于或等于3.10,你还可以使用内置的typing模块导入
TypeGuard
类。

main.py
# ✅ for Python versions >= 3.10 from typing import TypeGuard print(TypeGuard)

您可以使用python --version命令检查您的 Python 版本。

python --version python3 --version

获取 python 版本

您可以通过从
官方 python.org 网站下载安装程序并运行它来升级您的 Python 版本。

如果出现提示,请确保勾选以下选项:

  • 为所有用户安装启动器(推荐)
  • 将 Python 添加到 PATH(这会将 Python 添加到您的 PATH 环境变量)

如果这些建议都没有帮助,您可以尝试升级您环境中的所有包。

升级你环境中的所有包

升级所有过时包的最直接方法是使用 Python 脚本。

main.py
import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)
您可以将脚本存储在 Python 文件中,例如main.py并运行该文件python main.py以升级所有过时的包。

以下是可用于升级所有过时软件包的替代命令。

# 👇️ macOS or Linux pip install -U `pip list --outdated | awk 'NR>2 {print $1}'` # 👇️ Windows for /F "delims= " %i in ('pip list --outdated') do pip install -U %i

如果您使用requirements.txt文件,则可以使用以下命令更新它。

pip freeze > requirements.txt

如果错误仍然存​​在,请按照我的
ModuleNotFoundError: No module named ‘typing_extensions’
一文中的说明进行操作。