在python中出现cannot import name 'OrderedDict' from 'typing'情况 如何处理
时间: 2024-01-15 14:05:55 浏览: 260
这个错误通常出现在 Python 3.7 之前的版本中,因为在这些版本中,`OrderedDict` 类型在 `collections` 模块中定义,而不是在 `typing` 模块中。如果你在 Python 3.7 或更高版本中遇到这个错误,那么可能是因为你的代码中导入了一个名为 `typing` 的模块,它覆盖了标准库中的 `typing` 模块。以下是几种可能的解决方法:
1. 检查你的代码中是否导入了名为 `typing` 的模块,并将其重命名为其他名称,以避免与标准库中的 `typing` 模块冲突。
2. 升级你的 Python 版本到 3.7 或更高版本,因为在这些版本中,`OrderedDict` 类型已经被移动到 `collections` 模块中,并且不再存在于 `typing` 模块中。
3. 如果你无法升级你的 Python 版本或重命名你的导入,那么你可以尝试从 `collections` 模块中导入 `OrderedDict` 类型,而不是从 `typing` 模块中导入。例如:
```python
from collections import OrderedDict
```
这将确保你使用的是标准库中的 `OrderedDict` 类型,而不是被覆盖的 `typing` 模块中的类型。
相关问题
python3.7在from transformer import BertModel 报错 ImportError: cannot import name 'OrderedDict' from 'typing'
如果您正在使用 Python 3.7,那么应该已经包含了 `typing` 模块中的 `OrderedDict` 类型,因此出现这个错误可能是由于 `transformer` 模块中的某些代码使用了过时的 `typing` 语法导致的。
解决这个问题的方法是更新 `transformer` 模块或者使用较低版本的 Python,例如 Python 3.6。如果您希望继续使用 Python 3.7,您可以尝试从 `typing` 模块中导入 `OrderedDict` 类型:
```python
from typing import OrderedDict
```
然后再尝试导入 `BertModel`。如果这种方法也无法解决问题,您可以尝试升级 `transformer` 模块,或者提交一个issue到 `transformer` 模块的开发者那里。
from tensorflow.python.keras.callbacks import History出错cannot import name 'OrderedDict' from 'typing'
这个错误通常是由于 Python3.7 版本及以上的 typing 模块中的 OrderedDict 类型在只有 Python3.6 版本及以下的版本中不可用所导致的。建议将 Python 版本降至 3.6 或在代码中使用 collections.OrderedDict 替换 typing.OrderedDict。
阅读全文