You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apify Scrapy模板触发AttributeError,本地及部署均报错求解决

解决AttributeError: 'AsyncioSelectorReactor' object has no attribute '_handleSignals'问题

原因分析

这个错误源于Python 3.11与Twisted库的版本兼容性冲突——Python 3.11调整了信号处理逻辑,而旧版本Twisted未适配AsyncioSelectorReactor的_handleSignals属性,M1芯片环境的依赖安装逻辑可能放大了这个问题。

具体解决步骤

1. 锁定兼容的Twisted版本

在项目根目录的requirements.txt文件中,明确指定Twisted的兼容版本:

Twisted>=22.10.0

若使用pyproject.toml管理依赖,添加以下配置:

[project.dependencies]
Twisted = ">=22.10.0"

2. 本地验证依赖有效性

在M1 Mac终端执行以下命令,更新依赖并测试爬虫本地运行:

pip install --upgrade twisted>=22.10.0
scrapy crawl <你的爬虫名称>

确认本地无报错后,再重新部署到Apify平台。

3. 强制Apify平台使用指定依赖

若部署后平台仍加载旧版本依赖,可修改项目的Dockerfile,添加明确的依赖安装指令:

RUN pip install --upgrade pip && pip install twisted>=22.10.0 && pip install -r requirements.txt

同时在Apify控制台的任务设置中,确保构建流程优先读取项目根目录的依赖配置文件。

4. 降级Python版本(备选方案)

如果上述方法无效,可临时将项目Python版本降级到3.10,该版本与旧版Twisted兼容性更好:

  • 修改项目runtime.txt文件:
python-3.10
  • 或在Apify控制台创建任务时,直接选择Python 3.10运行环境。

内容的提问来源于stack exchange,提问作者Ulvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:33:10