CKAN DataPusher启动报错:无法从collections导入Mapping
解决DataPusher运行时的
ImportError: cannot import name 'Mapping'问题 问题根源
你遇到的错误核心原因是Python 3.10及以上版本中,Mapping类已从collections模块迁移到collections.abc模块,但你当前安装的messytables库版本过旧,仍在从旧路径导入Mapping。你之前修改自身项目的main.py和__init__.py无效,因为报错来自第三方依赖库messytables的代码文件。
解决步骤
修改
messytables的核心文件- 打开
messytables的core.py文件,路径为:/usr/local/lib/python3.10/dist-packages/messytables/core.py - 将文件第2行的
from collections import Mapping替换为:from collections.abc import Mapping - 保存文件后重新运行DataPusher命令:
sudo python3 datapusher/main.py deployment/datapusher_settings.py
- 打开
处理额外的Requests依赖警告(可选)
错误日志中的RequestsDependencyWarning是因为urllib3版本与当前requests版本不兼容,可通过安装指定版本的urllib3解决:pip install urllib3==1.26.15
内容的提问来源于stack exchange,提问作者Ricko Tiaka
相关产品推荐
相关产品推荐

