使用Pylucene时导入ICUFoldingFilter失败的问题求助
解决ICUFoldingFilter导入时找不到utr30.dat的问题
核心问题
报错提示找不到utr30.dat,这个文件是Lucene ICU分析组件依赖的资源文件,要么是Python版Lucene包未包含该文件,要么是ICU版本不兼容导致资源加载路径异常。
解决步骤
检查资源文件是否存在
直接前往报错路径:~/miniconda3/envs/lucene/lib/python3.11/site-packages/lucene-9.4.1-py3.11-linux-x86_64.egg/lucene/resources/org/apache/lucene/analysis/icu/,查看是否有utr30.dat文件。如果没有,说明安装的Lucene包资源不完整。手动补充缺失的资源文件
- 从Apache Lucene 9.4.1版本的
lucene-analyzers-icu-9.4.1.jar中提取utr30.dat(解压该jar包后,在org/apache/lucene/analysis/icu/目录下可找到目标文件)。 - 将提取到的
utr30.dat复制到上述缺失文件的目录中。
- 从Apache Lucene 9.4.1版本的
统一ICU版本解决兼容性问题
系统安装的libicu70和conda环境内的icu58.2版本差异过大,可能导致资源加载异常:- 卸载当前conda环境内的icu和pyicu:
conda remove icu pyicu - 安装与系统libicu70匹配的版本:
conda install -c conda-forge icu=70 pyicu=2.8
- 卸载当前conda环境内的icu和pyicu:
重新安装Lucene包确保完整性
卸载并重新安装Lucene 9.4.1,避免安装过程中资源文件丢失:pip uninstall lucene pip install lucene==9.4.1
内容的提问来源于stack exchange,提问作者user2773013
相关产品推荐
相关产品推荐

