Wand Policy Error: error/constitute.c/ReadImage/412

Wand Policy Error: error/constitute.c/ReadImage/412

我在使用 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 个月内一直有效。现在,为什么我会收到此错误?

请帮忙。

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

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

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

在基于 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

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

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

并在我的案例中重新启动服务器 Jupiter Notebook 运行时解决了我的问题