ImportError: cannot import name 'cached_property' from 'functools' (/environment/miniconda3/lib/python3.7/functools.py)
时间: 2023-06-14 18:07:24 浏览: 2228
这个错误通常是因为你的 Python 版本太低,缺少 `cached_property` 函数。
`cached_property` 是 Python 3.8 引入的函数,如果你使用的是 Python 3.7 或更早的版本,那么就会出现这个错误。
解决这个问题的方法是升级你的 Python 版本到 3.8 或更高版本,或者手动定义一个 `cached_property` 函数。你可以通过以下代码来定义 `cached_property` 函数:
```
try:
from functools import cached_property
except ImportError:
# python < 3.8 fallback
from functools import lru_cache
def cached_property(func):
return property(lru_cache()(func))
```
这段代码首先尝试从 `functools` 模块中导入 `cached_property` 函数,如果导入失败,则定义一个 `cached_property` 函数,并使用 `lru_cache` 装饰器来实现缓存功能。
相关问题
ImportError: cannot import name PILLOW_VERSION from PIL (/home/lenovo/anaconda3/envs/myenv/lib/python3.7/site-packages/PIL/__init__.py)
这个错误通常出现在你的代码中导入了 PIL 模块,但是无法导入其中的 PILLOW_VERSION 属性。这可能是由于你的 PIL 库版本过低导致的,因为 PILLOW_VERSION 属性是在 PIL 2.1.0 版本中添加的。你可以尝试将 PIL 升级到最新版本,或者检查你的代码是否正确导入了 PIL 模块。如果问题仍然存在,你可以考虑卸载并重新安装 PIL 库。
ImportError: cannot import name TypedDict from typing (/opt/module/miniconda3/envs/superset/lib/python3.7/typing.py)
这个错误通常出现在 Python3.7 以下版本中,因为 `typing.TypedDict` 是在 Python3.7 中引入的。如果你的 Python 版本低于 3.7,则需要升级到 Python3.7 或更高版本才能使用 `TypedDict`。如果你不能升级 Python 版本,你可以考虑使用第三方库 `typing_extensions` 中的 `TypedDict`。你可以通过执行以下命令来安装 `typing_extensions`:
```
pip install typing_extensions
```
然后,在你的代码中导入 `TypedDict` 时,使用以下语句:
```
from typing_extensions import TypedDict
```
阅读全文