Python 2.7.12中pyftsubset报ImportError: cannot import name redirect_stderr求助
解决 ImportError: cannot import name redirect_stderr 问题
嘿,我来帮你搞定这个问题!你碰到的这个错误本质是fontTools版本和Python 2.7不兼容导致的——redirect_stderr是Python 3.5及以上版本才加入contextlib模块的功能,而你当前用的Python 2.7.12根本没有这个方法,自然会报错。
给你两个可行的解决方向:
方向一:保留Python 2.7环境(仅应急用)
因为Python 2.7早已停止官方维护,这只是临时解决办法:
- 卸载当前不兼容的fontTools版本,安装支持Python 2.7的最后一个稳定版本:
pip uninstall -y fonttools pip install fonttools==3.35.1
- 安装完成后再运行
pyftsubset,应该就能正常执行了。
方向二:升级Python版本(强烈推荐)
既然Python 2.7已经被淘汰,升级到新版本是更长远的解决方案:
- 安装Python 3.5及以上的稳定版本(比如3.8、3.10都是不错的选择)
- 重新安装最新版的fontTools:
pip install --upgrade fonttools
- 之后运行
pyftsubset就不会再出现这个导入错误,还能享受到fontTools的新功能和安全修复。
验证一下:完成上述操作后,执行pyftsubset命令测试,错误应该就消失啦。
内容的提问来源于stack exchange,提问作者vbarbarosh
相关产品推荐
相关产品推荐

