You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10环境下Camelot调用Ghostscript报-100错误,寻求解决方案

解决Camelot中GhostscriptError: -100的方案

我之前在Windows环境下用Camelot处理PDF表格时也碰到过这个一模一样的错误,结合你的环境(Windows 10 + Python 3.7.4 32位 + Ghostscript 9.5.2),可以试试下面这些针对性的解决办法:

1. 确认Ghostscript路径与Python位数匹配

Windows下Camelot经常因为路径或位数不匹配触发这个错误,尤其是32位Python:

  • 先找到你的Ghostscript安装路径,32位版本一般在C:\Program Files (x86)\gs\gs9.52\bin,64位在C:\Program Files\gs\gs9.52\bin
  • 把这个路径添加到系统PATH环境变量,或者在代码开头手动指定(避免环境变量生效延迟):
    import os
    # 替换成你实际的Ghostscript bin目录路径
    os.environ['PATH'] += os.pathsep + r'C:\Program Files (x86)\gs\gs9.52\bin'
    
  • 重点:32位Python必须搭配32位Ghostscript,64位Python搭配64位,交叉搭配一定会出问题!

2. 调整Camelot的PDF解析参数

有时候是PDF表格类型不匹配导致的,试试以下参数调整:

  • 如果你的表格是流式布局(没有明显边框),切换解析模式:
    return camelot.read_pdf(daily_url, pages="all", flavor='stream')
    
  • 如果是点阵式表格,添加布局检测参数:
    return camelot.read_pdf(daily_url, pages="all", layout_kwargs={'detect_vertical': True})
    

3. 更换Ghostscript版本

Ghostscript 9.52和Python 3.7.x的兼容性存在一些已知问题,你可以:

  • 降级到Ghostscript 9.50(这个版本和Python 3.7搭配比较稳定)
  • 或者升级到Ghostscript 9.55.0及以上的稳定版本,同样要注意和Python位数匹配

4. 排查PDF文件本身的问题

如果上面的方法都没用,可能是PDF文件的问题:

  • 先手动打开PDF,确认文件没有损坏、加密,表格能正常显示
  • 尝试用Adobe Acrobat或其他PDF工具将原文件导出为新的PDF,再用Camelot处理,有时候重新生成的PDF能解决解析异常问题

内容的提问来源于stack exchange,提问作者reefette

火山引擎 最新活动