导入top2vec时遇TypeError:__init__()不识别cachedir参数
解决导入top2vec时的
TypeError: __init__() got an unexpected keyword argument 'cachedir'错误 问题原因
这个错误是由于hdbscan版本不兼容导致的:新版本hdbscan(v0.8.30及以上)将Memory类的初始化参数从cachedir更改为location,但当前安装的top2vec依赖的hdbscan代码仍在使用旧参数cachedir,从而触发参数不匹配的报错。
解决方案
方案1:降级hdbscan到兼容版本
执行以下pip命令,将hdbscan降级到0.8.29版本(该版本仍使用cachedir参数,与top2vec兼容):
pip install hdbscan==0.8.29 --force-reinstall
方案2:修改hdbscan源代码适配新参数
- 找到报错文件路径:
~\AppData\Roaming\Python\Python39\site-packages\hdbscan\hdbscan_.py - 打开文件,定位到第509行:
memory=Memory(cachedir=None, verbose=0), - 将参数
cachedir替换为location,修改后代码:memory=Memory(location=None, verbose=0), - 保存文件后重新运行导入代码。
验证
修改完成后,重新执行from top2vec import Top2Vec,若不再报错则问题解决。
内容的提问来源于stack exchange,提问作者Redwan Hossain Arnob
相关产品推荐
相关产品推荐

