Streamlit集成Spacy报错:'PathDistribution'无'_normalized_name'属性
解决方案
针对你遇到的AttributeError: 'PathDistribution' object has no attribute '_normalized_name'错误,尝试以下几种解决方式:
1. 升级catalogue库
你的环境中catalogue版本为2.0.8,该版本与Python3.10的importlib.metadata存在兼容性问题,执行以下命令升级到最新稳定版:
pip install --upgrade catalogue
2. 调整importlib-metadata版本
Python3.10自带了较新版本的importlib.metadata,手动安装的3.4.0版本可能引发冲突,尝试卸载手动安装的版本,使用系统自带的:
pip uninstall -y importlib-metadata
如果必须手动安装,选择适配Python3.10的版本,比如:
pip install importlib-metadata>=4.10.0
3. 排查本地路径安装的包
错误中的PathDistribution指本地路径安装的包(非PyPI官方安装),这类包的entry point可能存在格式问题。执行以下命令查看环境中的本地包:
pip list --path
找到这类包后,移除或通过PyPI重新安装,避免使用本地路径安装的方式。
4. 切换Python3.9环境
M1芯片上Python3.10部分库的兼容性仍有问题,尝试创建Python3.9的Miniconda环境,重新安装依赖后运行应用:
conda create -n demo_ui_py39 python=3.9 conda activate demo_ui_py39 pip install streamlit spacy PyMuPDF flair
问题背景回顾
- 系统环境:MacBook Air (M1,2020)、MacOS Monterey 12.3、Python3.10.8(Miniconda)
- 问题现象:Streamlit应用单独运行PDF处理正常,添加
import spacy后触发AttributeError,但Jupyter Notebook中单独运行Spacy无异常 - 已尝试操作:降级importlib-metadata到3.4.0、重建环境均无效
内容的提问来源于stack exchange,提问作者Akshay Sehgal
相关产品推荐
相关产品推荐

