我在虚拟环境中安装了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中运行?
答案 0 :(得分:6)
这是您的安装问题:Image
模块已作为PIL
模块的子包安装,而您使用的库期望Image
模块直接在python中路径。最简单的解决方案是替换:
import Image
使用:
from PIL import Image
文件qrcode/image/pil.py
中的。