PyCharm环境下安装channels-redis失败:Twisted编译错误问题求助
解决Python 3.9下安装channels-redis时Twisted编译失败的问题
问题原因解释
你碰到的tp_print不是_typeobject成员的错误,本质是Python版本和Twisted版本不兼容导致的:Python 3.9移除了C API里的tp_print字段,但你安装的Twisted 20.3.0是比较老的版本,还在依赖这个已被移除的API,所以编译时触发了这个错误。
可行解决步骤
- 第一步:先安装
wheel包,避免用旧的setup.py install方式安装依赖,提升安装成功率和速度:pip install wheel - 第二步:升级Twisted到支持Python 3.9的版本(Twisted 20.3.0.post1及以上版本已经修复了这个兼容性问题):
如果你想指定具体版本,也可以直接安装:pip install twisted --upgradepip install twisted>=20.3.0.post1 - 第三步:现在再安装channels-redis就不会因为Twisted编译失败卡住了:
pip install channels-redis
额外说明
如果升级Twisted时还是遇到编译问题,你也可以尝试下载对应Python版本和系统架构的Twisted预编译whl文件(比如适配Python3.9+Windows x64的版本),然后本地安装,这样可以跳过编译过程。不过现在pip已经会自动优先选择兼容的预编译包,只要你升级到正确的Twisted版本,一般都能解决问题。
内容的提问来源于stack exchange,提问作者DerWilliWonka
相关产品推荐
相关产品推荐

