Python PIL - 在"None"中找不到引用 '['



我在过去的一个小时里一直在寻找这个问题的答案,我觉得任何已经问过的问题都几乎没有错过我的案例。

我一直在Python中修补PIL库,尝试我第一次操作像素,当突然在'None'"中找不到引用'[';弹出警告。自然地,我试着阅读IDE的警告,并在网上查找类似的警告,但只以"丢失的导入"告终。或者"错误设置解释器"。

这是问题中的代码:

from PIL import Image
with Image.open("./shoop_da_whoop.jpg") as img:
    pixel = img.load()
    width, height = img.size
    for x in range(0, width, 2):
        for y in range(0, height, 2):
            pixel[x, y] = (255, 0, 0)
    img.show()

警告就在括号下面:pixel*[*x, y] =(255,0,0)。我不知道是怎么回事,我很乐意尝试每一个建议。

我在PyCharm版本2022.1上运行Python 3.10

PyCharm依赖于这里的类型存根,其中有一个错误(或者更确切地说是缺少类型注释)- load()方法被声明为返回None

class Image:
    ...
    def load(self) -> None: ...

PyCharm:

https://youtrack.jetbrains.com/issue/PY-55584/Add-a-way-to-selectively-disable-third-party-package-stubs-included-in-the-bundled-Typeshed

如果他们实现了禁用 typehed 的功能,返回类型应正确解析。

在我的例子中,它显示为红色波浪线的错误。
为了将其转换为黄色警告,我使用了显式键入。

在这个例子中是:

pixel: PyAccess = img.load()

最新更新