迁移至Poetry安装pyspark2.4.8遇pypandoc属性错误,求原因
解决PySpark 2.4.8 + Poetry安装时pypandoc的AttributeError问题
问题原因
PySpark 2.4.8的setup.py依赖pypandoc转换README文档,但新版本pypandoc已移除旧的convert()方法(替换为convert_text()等新API)。
为什么requirements.txt没问题?因为pip的依赖解析逻辑更宽松,安装PySpark时会自动拉取兼容旧API的pypandoc老版本;而Poetry依赖解析更严格,默认拉取最新版pypandoc,导致API不匹配触发错误。
解决办法
三种可行方案,按需选择:
- 锁定pypandoc兼容版本
在pyproject.toml里手动添加旧版本pypandoc依赖:
[tool.poetry.dependencies] python = "^3.x" # 替换为你的Python版本 pyspark = "2.4.8" pypandoc = "~=2.1" # 该版本保留convert()方法
执行poetry install重新安装。
- 跳过PySpark文档生成步骤
安装时设置环境变量,让PySpark构建脚本跳过pypandoc调用:
SKIP_PANDOC=1 poetry install
临时设置环境变量后执行安装,即可避开pypandoc相关错误。
- 升级PySpark到兼容新版本pypandoc的版本
若业务允许,将PySpark升级到3.x版本(如3.0+),这些版本已修复对pypandoc新API的兼容问题,无需额外处理依赖冲突。
内容的提问来源于stack exchange,提问作者goosewill
相关产品推荐
相关产品推荐

