can't import OrderedDict ImportError: cannot import name 'OrderedDict'

5.5k Views Asked by At

I'm trying to run a repo using allennlp. As I run it, I can't import from typing import OrderedDict in ddp_accelerator.py file.

Traceback (most recent call last):
  File "train.py", line 10, in <module>
    from models.newmodel import model
  File "/home/GraphWriter-master/models/newmodel.py", line 4, in <module>
    from models.list_encoder import list_encode, lseq_encode
  File "/home/GraphWriter-master/models/list_encoder.py", line 6, in <module>
    from allennlp.modules.elmo import Elmo
  File "/home/GraphWriter-master/allennlp/modules/__init__.py", line 8, in <module>
    from allennlp.modules.backbones import Backbone
  File "/home/GraphWriter-master/allennlp/modules/backbones/__init__.py", line 3, in <module>
    from allennlp.modules.backbones.vilbert_backbone import VilbertBackbone
  File "/home/GraphWriter-master/allennlp/modules/backbones/vilbert_backbone.py", line 10, in <module>
    from allennlp.modules.transformer import (
  File "/home/GraphWriter-master/allennlp/modules/transformer/__init__.py", line 126, in <module>
    from allennlp.modules.transformer.layer_norm import LayerNorm
  File "/home/GraphWriter-master/allennlp/modules/transformer/layer_norm.py", line 3, in <module>
    from allennlp.modules.transformer.transformer_module import TransformerModule
  File "/home/GraphWriter-master/allennlp/modules/transformer/transformer_module.py", line 12, in <module>
    from allennlp.nn.parallel import ShardedModuleMixin
  File "/home/GraphWriter-master/allennlp/nn/parallel/__init__.py", line 2, in <module>
    from allennlp.nn.parallel.ddp_accelerator import (
  File "/home/GraphWriter-master/allennlp/nn/parallel/ddp_accelerator.py", line 6, in <module>
    from typing import (
ImportError: cannot import name 'OrderedDict'

I tried to import it from collections or ordereddict as I saw in other posts but still can't figure it out.

I'm using Python 3.6

Thanks for helping me.

1

There are 1 best solutions below

0
On

Do you have to use Python 3.6? Python 3.7 and upwards have OrderedDict where we expect it.