报错 之 from typing import OrderedDict ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘
from typing import OrderedDict ImportError: cannot import name 'OrderedDict' from 'typing' (E:\Python\lib\typing.py)。
????????這樣一個(gè)問(wèn)題在網(wǎng)上沒(méi)有搜到想要的答案,因此仔細(xì)看了報(bào)錯(cuò)的源碼,發(fā)現(xiàn)在"E:\Python\lib\site-packages\git\config.py", 的48 行 from typing import OrderedDict 報(bào)錯(cuò),我們看報(bào)錯(cuò)的地方,會(huì)發(fā)現(xiàn),這里是一個(gè) if 判斷語(yǔ)句:
很明顯,我們的代碼走了第二個(gè)分支,因此去E:\Python\lib\typing.py查看發(fā)現(xiàn),typing.py里的確沒(méi)有這樣一個(gè)類。說(shuō)明sys.version_info[:2]的輸出 >= (3, 7)。這里的sys.version_info其實(shí)就是我們的python版本,說(shuō)明大于等于3.7的python版本會(huì)走第二分支,但是配套的typing.py中沒(méi)有OrderedDIct這個(gè)類,因此會(huì)報(bào)這樣一個(gè)錯(cuò)誤,這里涉及的其實(shí)是版本不匹配的問(wèn)題,但是暫不能確定是哪個(gè)包的版本不對(duì)應(yīng)(另外我查到只有python版本大于3.5才可以正常使用typing)。因?yàn)槲业膒ython版本是3.7.1,因此就這樣修改代碼:
if sys.version_info[:2] <= (3, 7): # 注意等號(hào)from collections import OrderedDictOrderedDict_OMD = OrderedDict # else:# from typing import OrderedDict# OrderedDict_OMD = OrderedDict[str, List[_T]]這樣代碼就可以繼續(xù)運(yùn)行了。
?
總結(jié)
以上是生活随笔為你收集整理的报错 之 from typing import OrderedDict ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Numpy中求向量和矩阵的范数
- 下一篇: conda 分享自己的实验环境