Ubuntu 22.04 内网机器,unstructured 0.15.5,partition_pdf 报 Unable to get page count. Is poppler installed and in PATH,服务器没有外网,apt 也连不上源。
真正麻烦的地方在于,几个原因的现象几乎一样。系统里确实没有装 poppler-utils;poppler 装在自定义路径,PATH 里找不到;内网 apt 源不可用,在线安装直接失败;容器镜像用的是 slim 版,依赖被裁掉。
第一件事是确认命令行工具是否存在
which pdftoppm pdfinfo || echo missing
接着用离线 deb 包补装
dpkg -i poppler-utils_22.02.0-2ubuntu0.5_amd64.deb
然后把安装路径加进环境变量
export PATH=/opt/poppler/bin:$PATH; pdfinfo -v
末了重新解析同一份 PDF
python -c "from unstructured.partition.pdf import partition_pdf;print(len(partition_pdf('a.pdf')))"
改之前先确认了最近有没有人动过配置,避免白查一遍。
这次没动代码,只在配置和运行环境上找原因。
隔了一天再看,现象没变,说明不是偶发。
那几天正好在做别的变更,先把时间线对齐才敢动手。
排查用的命令都是临时敲的,没有写成脚本,事后才整理。
别只看报错消失,验证要多做一步。partition_pdf 能返回元素列表,页数与 pdfinfo 输出一致,日志里不再出现 poppler 提示。
unstructured 只调用命令行工具不打包二进制,离线环境要把 deb 和依赖一起带进去。这类问题最好一次改到位,反复小改反而容易把原因搅混。
