7

我在虚拟环境中安装了 Pillow 和 qrcode 模块。

在 python shell 中,我可以使用 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 的 Image 类,但它可以在 shell 中工作?

4

1 回答 1

6

这是您的安装问题:Image模块已作为PIL模块的子包安装,而您使用的库需要Image模块直接位于 python 路径中。最简单的解决方案是更换:

import Image

和:

from PIL import Image

在文件中qrcode/image/pil.py

于 2013-10-01T21:36:46.677 回答