感谢大佬,遇到了同样问题。原来是typing版本不兼容同时两个同样的库发生冲突,卸载外面site-packages的typing.py,然后安装旧版本解决问题👌🏻
智者 wrote:
感谢七月雪和MTF的回答。
之前做的实验,后来却无法再现之前的结果。可能是实验条件记录有误。
不过现在基本搞清了问题发生的原因。结论是:在C:\veighna_studio\Lib和C:\veighna_studio\Lib\site-packages文件夹下各有一个typing.py文件,后者的文件版本较新,不同的项目因模块搜索顺序不同而调用了不同的版本的typing.py文件,调用新版的typing.py文件,会出现上述AttributeError错误。
修改C:\veighna_studio\Lib\site-packages\vnpy\event\engine.py文件,在开头加入
“import sys
print(sys.path)”,然后运行进行测试。在PyCharm中单独打开C:\veighna_studio项目,模块搜索顺序(sys.path)会变化,根文件夹C:\veighna_studio会提前,文件夹C:\veighna_studio\Lib\site-packages排在C:\veighna_studio\Lib之后,运行run.py,调用typing模块会优先调用C:\veighna_studio\Lib下的typing.py文件(文件版本较旧),不会出错。
在PyCharm中单独打开C:\veighna_studio\Lib\site-packages项目,模块搜索顺序(sys.path)会变化,根文件夹C:\veighna_studio\Lib\site-packages会提前,排在C:\veighna_studio\Lib之前,运行run.py,调用typing模块会优先调用C:\veighna_studio\Lib\site-packages下的typing.py文件(文件版本较新),会出错。
在PyCharm中打开C:\veighna_studio项目后,再打开C:\veighna_studio\Lib\site-packages项目,打开方式有三种。不选择在新窗口中打开项目、替换现有窗口的项目,而选择以附加到已经打开的项目的形式打开,同样也会影响模块搜索顺序(sys.path),文件夹C:\veighna_studio\Lib\site-packages会提前,排在C:\veighna_studio\Lib之前,运行run.py,调用typing模块会优先调用C:\veighna_studio\Lib\site-packages下的typing.py文件(文件版本较新),会出错。点击进入File | Settings | 项目: veighna_studio | 项目依赖项,调整设置,在 “项目”窗格选中veighna_studio项目,在“取决于这些项目”窗格,取消选中所需项目site-packages名称左侧的复选框,问题得以解决。
https://download.lfd.uci.edu/pythonlibs/archived/TA_Lib-0.4.24-cp310-cp310-win_amd64.whl
下载后cmd:pip install 文件路径
文件路径可以直接把文件拖进cmd窗口自动填写