PIL Image ImportError


У меня есть модули Pillow и qrcode, установленные в виртуальной среде.

Из оболочки python я могу создать тестовый образ программно, используя PIL:

>>> from PIL import Image
>>> img = Image.new('1', (200, 200))
>>> img.save('test-image.jpeg', 'JPEG')

Отлично, это работает именно так, как я ожидал. Однако я получаю эту ошибку, когда пытаюсь использовать модуль, который полагается на PIL:

>>> import qrcode
>>> qr_code = qrcode.make("1") 
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/home/vagrant/.virtualenvs/env1/local/lib/python2.7/site-packages/qrcode/main.py", line 8, in make
     return qr.make_image()
   File "/home/vagrant/.virtualenvs/env1/local/lib/python2.7/site-packages/qrcode/main.py", line 186, in make_image
     from qrcode.image.pil import PilImage
   File "/home/vagrant/.virtualenvs/env1/local/lib/python2.7/site-packages/qrcode/image/pil.py", line 5, in <module>
     import Image
ImportError: No module named Image

Почему qrcode не может импортировать класс изображений PIL, но он работает из оболочки?

1 7

1 ответ:

Это проблема с вашей установкой: Image модуль был установлен как подпакет модуля PIL, в то время как библиотека, которую вы используете, ожидает, что модуль Image находится непосредственно в пути python. Самое простое решение-заменить:

import Image

С:

from PIL import Image

В файле qrcode/image/pil.py.