在过去的一个小时里,我一直在寻找答案,我觉得任何已经问过的问题都几乎没有错过我的案例。
我一直在修改Python中的PIL库,第一次尝试操作像素时,突然弹出了一个"Cannot find reference '[' in 'None'"的警告。自然,我尝试阅读IDE的警告,并在网上查找类似的警告,但最终只得到了"missing imports"或"wrontly set interpretors"。
下面是所讨论的代码:
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()
警告就在括号下面:像素 *[* x,y]=(255,0,0)。我不知道是怎么回事,我会很乐意尝试每一个建议。
我在PyCharm版本2022.1上运行Python 3.10
2条答案
按热度按时间wfypjpf41#
PyCharm在这里依赖于typeshed stub,其中有一个错误(或者说缺少类型注解)-
load()
方法被声明为返回None
zwghvu4y2#
有一张PyCharm的票:
https://youtrack.jetbrains.com/issue/PY-55584/Add-a-way-to-selectively-disable-third-party-package-stubs-included-in-the-bundled-Typeshed
如果他们实现了禁用typeshed的特性,那么返回类型应该能够正确解析。
在我的情况下,它显示为错误与红色波浪线。
为了将其转换为黄色警告,我使用了显式类型。
在本例中,它将是: