【问题标题】:Wand Policy Error: error/constitute.c/ReadImage/412魔杖政策错误:错误/构成.c/ReadImage/412
【发布时间】:2019-03-12 23:13:29
【问题描述】:

我在使用 Wand 将 pdf 转换为图像时遇到了问题:

E           wand.exceptions.PolicyError: not authorized `/opt/sample.pdf' @ error/constitute.c/ReadImage/412

我已经在这里访问过之前的堆栈溢出问题: convert:not authorized `aaaa` @ error/constitute.c/ReadImage/453

这是我的代码

def build_image(self, pdf_path, img_path):
    with wand.image.Image(filename=pdf_path) as img:
        img.save(filename=img_path)

我的代码在过去 6 个月内一直有效。现在,为什么会出现这个错误?

请帮忙。

【问题讨论】:

标签: python-3.x wand


【解决方案1】:

这可能是由于底层包的安全修复(参见https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563

我通过编辑 /etc/ImageMagick-6/policy.xml 为我修复了它,并将 pdf 行的权限更改为“读取”:

<policy domain="coder" rights="read" pattern="PDF" />

【讨论】:

  • 这解决了我的问题。但是,我需要以超级用户身份登录来编辑 /home/xxx/etc/ImageMagick-6/ 下的 policy.xml 文件
  • 解决了这个问题,别忘了重启apache。
  • 如果你使用的是jupyter notebook你需要重启服务器Ctrl-C再次运行
  • 执行此操作的命令:sed -i 's,&lt;policy domain="coder" rights="none" pattern="PDF" /&gt;,&lt;policy domain="coder" rights="read" pattern="PDF" /&gt;,g' /etc/ImageMagick-6/policy.xml
【解决方案2】:

在基于 Debian 的系统上对 ImageMagick 进行故障排除。

如果遇到 PolicyError,您可以通过更改 /etc/ImageMagick-6/policy.xml 中的以下行来修复它:

<policy domain="coder" rights="none" pattern="PDF" />

到这里:

<policy domain="coder" rights="read|write" pattern="PDF" />

(有关 policy.xml 的更多详细信息,请参阅here。)

取自repo

【讨论】:

    【解决方案3】:

    编辑 /etc/ImageMagick-6/policy.xml 并将 pdf 行的权限更改为“读|写”:

    <policy domain="coder" rights="read|write" pattern="PDF" />
    

    并在我的情况下重新启动服务器 Jupiter Notebook 运行时解决了我的问题

    【讨论】:

      猜你喜欢
      • 2019-03-19
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 2020-09-01
      • 1970-01-01
      • 2016-05-26
      • 2021-11-18
      相关资源
      最近更新 更多