无法使用 PIL 在 Mac 上打开图像

Qui*_*inn 1 python macos python-imaging-library

所以我有一个简短的 python 脚本,它接受一个代表图像的 base64 字符串,然后打开该图像的预览。

这是我的脚本:

#!/usr/local/bin/python3

from PIL import Image
import sys
import base64

IMAGE_NAME = "temp.png"

def do_some_stuff(args):
    if len(args) != 2:
        return

    with open(IMAGE_NAME, "wb") as image_file:
        image_file.write(base64.decodebytes(args[1].encode('ascii')))

    image = Image.open(IMAGE_NAME)
    image.show()


if __name__ == '__main__':
    do_some_stuff(sys.argv)
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,除了当我有时间显示图像时,我遇到了这个错误:

FSPathMakeRef(/Applications/Preview.app) failed with error -43.

有谁知道为什么会发生此错误或如何修复它?

Qui*_*inn 5

进一步挖掘后,似乎此错误FSPathMakeRef意味着未找到该文件。所以我查看了我的应用程序文件夹,预览就在那里!

当我点击获取信息时,我注意到它在/System/Applications/文件夹中而不是在/Applications.

在此处输入图片说明

我的猜测是该应用程序已在 Catalina 中移动,而 PIL 尚未更新。

无论如何要修复它,我只是做了一个符号链接,其中 PIL 看起来像这样:

ln -s /System/Applications/Preview.app /Applications/Preview.app
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力!