目录
Cannot import name ‘Required’ from ‘typing_extensions’
- 无法从“typing_extensions”导入名称“Required”
- 无法从“typing_extensions”导入名称“ParamSpec”
- 无法从“typing_extensions”导入名称“TypeGuard”
无法从“typing_extensions”导入名称“Required”
“ImportError: cannot import name ‘Required’ from ‘typing_extensions’” 当我们有一个过时的模块版本时发生typing-extensions
。
解决该错误,typing-extensions
通过运行
pip install typing-extensions --upgrade
命令进行升级。
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)
和Required
类NotRequired
已添加到
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选项将指定的包升级到最新的可用版本。
导入Required
和NotRequired
类
升级typing-extensions
模块后,您应该能够按如下方式导入Required
和类。NotRequired
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类。
# ✅ for Python versions >= 3.11 from typing import Required, NotRequired print(Required) print(NotRequired)
您可以使用python --version
命令检查您的 Python 版本。
python --version python3 --version
您可以通过从
官方 python.org 网站下载安装程序并运行它来升级您的 Python 版本。
如果出现提示,请确保勾选以下选项:
- 为所有用户安装启动器(推荐)
- 将 Python 添加到 PATH(这会将 Python 添加到您的 PATH 环境变量)
如果这些建议都没有帮助,您可以尝试升级您环境中的所有包。
升级你环境中的所有包
升级所有过时包的最直接方法是使用 Python 脚本。
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)
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”导入名称“ParamSpec”
“ImportError: cannot import name ‘ParamSpec’ from ‘typing_extensions’” 当我们有一个过时的模块版本时发生typing-extensions
。
解决该错误,typing-extensions
通过运行
pip install typing-extensions --upgrade
命令进行升级。
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
按如下方式导入类。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
类。
# ✅ for Python versions >= 3.10 from typing import ParamSpec print(ParamSpec)
您可以使用python --version
命令检查您的 Python 版本。
python --version python3 --version
您可以通过从
官方 python.org 网站下载安装程序并运行它来升级您的 Python 版本。
如果出现提示,请确保勾选以下选项:
- 为所有用户安装启动器(推荐)
- 将 Python 添加到 PATH(这会将 Python 添加到您的 PATH 环境变量)
如果这些建议都没有帮助,您可以尝试升级您环境中的所有包。
升级你环境中的所有包
升级所有过时包的最直接方法是使用 Python 脚本。
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)
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: 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
按如下方式导入。from typing_extensions import TypeGuard print(TypeGuard)
您可以使用该pip show typing-extensions
命令来检查您的模块版本。
pip show typing-extensions pip3 show typing-extensions
如果你使用的 Python 版本大于或等于3.10
,你还可以使用内置的typing模块导入
TypeGuard
类。
# ✅ for Python versions >= 3.10 from typing import TypeGuard print(TypeGuard)
您可以使用python --version
命令检查您的 Python 版本。
python --version python3 --version
您可以通过从
官方 python.org 网站下载安装程序并运行它来升级您的 Python 版本。
如果出现提示,请确保勾选以下选项:
- 为所有用户安装启动器(推荐)
- 将 Python 添加到 PATH(这会将 Python 添加到您的 PATH 环境变量)
如果这些建议都没有帮助,您可以尝试升级您环境中的所有包。
升级你环境中的所有包
升级所有过时包的最直接方法是使用 Python 脚本。
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)
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’
一文中的说明进行操作。