Windows10下执行pip install -r requirements.txt时Cython报错如何解决
报错原因
你遇到的核心错误为AttributeError: module 'collections' has no attribute 'Iterable',该问题由版本兼容性导致:
Python 3.3版本开始将原本存放在collections模块下的抽象基类(包括Iterable)迁移到了collections.abc子模块,Python 3.10及以上版本正式移除了collections.Iterable这一旧别名。
本次安装过程中拉取的是Cython 0.29.14版本,该版本发布于2019年,仅适配Python 3.9及更低版本,未针对Python 3.10的上述改动做兼容,因此运行在你的Python 3.10环境下时触发报错。
解决方案
可根据实际需求选择以下任意一种方案解决:
- 方案1:升级Cython到兼容版本
Cython 0.29.21及以上版本已修复该兼容性问题,先执行命令单独安装高版本Cython:
pip install Cython>=0.29.21
再执行原有依赖安装命令即可:
pip install -r requirements.txt
如果你的requirements.txt文件中固定了Cython的旧版本号,先将文件内Cython的版本要求修改为>=0.29.21再执行安装即可。
- 方案2:降级Python版本
如果项目必须使用Cython 0.29.14版本,可将本地Python版本降级到3.9及更低版本,该版本区间的Python仍保留collections.Iterable别名,不会触发兼容性报错。 - 方案3:临时打补丁(仅应急使用)
如果不想修改Python和Cython版本,可先执行命令手动给collections模块加临时别名:
python -c "import collections; collections.Iterable = collections.abc.Iterable"
再执行pip install -r requirements.txt即可,该修改仅对当前会话生效,重启环境后会失效。
内容的提问来源于stack exchange,提问作者Eli Snh
相关产品推荐
相关产品推荐

