Python3.8导入xhtml2pdf的Pisa时ed448导入错误求助
问题解决方案
错误原因
ed448 加密算法是在 cryptography 3.0版本中新增的模块,你当前使用的 cryptography==2.2.2 不包含该模块。问题链为:xhtml2pdf 新版本依赖 pyhanko,而 pyhanko_certvalidator 会调用 cryptography 中的 ed448,最终触发导入失败。
解决方案
方案一:降级xhtml2pdf到无pyhanko依赖的版本
直接安装旧版xhtml2pdf,避免引入高版本依赖链:
pip uninstall xhtml2pdf -y pip install xhtml2pdf==0.2.8
该版本无需pyhanko支持,适配你的Python3.8.9和Django2.0.7环境。
方案二:升级cryptography到支持ed448的版本
若需要xhtml2pdf的最新功能,可升级cryptography到兼容版本:
pip install --upgrade cryptography>=3.0,<4.0
选择3.x系列是因为Python3.8对cryptography4.x+的兼容性存在潜在问题,且3.x版本可与Django2.0.7正常配合。
额外提示
Django2.0.7官方并不支持Python3.8,长期使用建议升级Django到2.2.x(LTS版本,支持Python3.6-3.8),避免更多兼容性问题。
内容的提问来源于stack exchange,提问作者RA.IBOY
相关产品推荐
相关产品推荐

