Не удается найти модуль PIL при использовании объявленного класса

Я написал простой скрипт на Python с подушкой для создания сетки на изображении 1024x256.

Затем я определяю класс, который больше похож на набор функций.

class Letters:

    COLOR_GREEN = (0, 255, 0)
    COLOR_BLUE = (0, 0, 255)
    COLOR_BLACK = (0, 0, 0)
    class A:
        margin_top = 64
        margin_bottom = 64
        section_margin_empty = 16
        section_margin_filled = [i for i in range(0, 15)]

        @staticmethod
        def draw(pixelarray, margin_left):

            draw_range_height = [i for i in range(margin_bottom, 256 - (6 * 16))]
            draw_range_width = [i for i in range(margin_left, margin_left + 15)]

            for j in draw_range_width:
                for i in draw_range_height:
                    if pixelarray[j, i] == (0, 0, 0):
                        pixelarray[j, i] = COLOR_GREEN

            return pixelarray

Но проблема, похоже, не в классе...

Мой основной код таков:

from PIL import Image
import os

if os.path.exists("banner.png"):
    img = Image.open("banner.png")
else:
    img = Image.new("RGB", (1024, 256), "black")

WIDTH, HEIGHT = img.size
pixels = img.load()

for i in range(0, HEIGHT):
    for j in range(0, WIDTH):
        if j % 16 == 0:
            pixels[j, i] = (0, 0, 255)
        else:
            if i % 16 == 0:
                pixels[j, i] = (0, 0, 255)
            else:
                pixels[j, i] = (0, 0, 0)

pixels = Letters.A.draw(pixels, 33)        # <= Error is here

img.save("banner.png")

Почему-то, когда я пытаюсь использовать функцию Letters.A.draw() сценарий вылетает в строке 1 с ImportError: Module PIL not found!

Почему это не работает, когда у меня есть эта строка, но когда я удаляю ее, она работает нормально??

Точное сообщение об ошибке:

Traceback (most recent call last):
  File "msp.py", line 1, in <module>
    from PIL import Image
ImportError: No module named PIL

1 ответ

По-видимому, это проблема с IDE. С инструментами Python VisualStudio 2017 это не сработало, но с LiCLipse это сработало. Странная вещь, но использование LiClipse помогло мне.

Другие вопросы по тегам