ImportError: cannot import name 'HTTPClientFactory' from 'twisted.web.client' (unknown location)
一、背景
以前使用py37+scrapy2.3.0 可以正常运行,后来不可以了,会报错。
可是我以前部署的服务,却仍然可以正常运行。需要排查问题。
二、分析
以前的可以,现在的不行,需要对比python环境的差异。
结合报错信息中提及的关键词Twisted。
ImportError: cannot import name 'HTTPClientFactory' from 'twisted.web.client' (unknown location)
通过对比发现:
以前的Twisted版本低(20.3.0)
现在的Twisted版本高( 22.4.0)
三、解决
既然版本有差异,试一下降低Twisted版本
pip install Twisted==20.3.0
运行项目,发现好了。一切又恢复正常了。
四、结论
是Twisted的高版本22.4.0不兼容低版本的scrapy2.3.0,需要低的旧版本Twisted20.3.0
重装一下Twisted的低版本即可:
pip install Twisted==20.3.0