无法导入PIL图像。

3

我只是想尝试一下将一张图片放置在另一张图片之上的代码块。然而,在导入时就会出现一个AttributeError错误,所以我无法进一步进行。

from PIL import Image

# image_path = "/Users/me/images/"
# fg_file = "hello-600x600.jpg"
# bg_file = "deer-1.jpg"
#
# bg = Image.open(image_path + bg_file)
# fg = Image.open(image_path + fg_file)
#
# bg.paste(fg, (10, 10), fg)
# bg.show()

使用导入功能后,我得到了以下输出:

Traceback (most recent call last):
  File "/Users/me/dev/pyExamples/image_manipulation/merge_images.py", line 3, in <module>
    from PIL import Image
  File "/Library/Python/2.7/site-packages/PIL/Image.py", line 31, in <module>
    import logging
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 206, in <module>
    _lock = threading.RLock()
AttributeError: 'module' object has no attribute 'RLock'
Exception AttributeError: '_shutdown' in <module 'threading' from '/Users/me/dev/pyExamples/threading/__init__.pyc'> ignored

Process finished with exit code 1 

我似乎来自于threading.RLock()方法,但我不知道在这里该怎么做。

有什么建议吗?


有趣。在你的系统上,import thread 能用吗?import threading; print threading.RLock 呢? - Kevin
1个回答

4
'/Users/me/dev/pyExamples/threading/__init__.pyc'

这个异常提示表明你的代码中有一个名为"threading"的模块。然而,threading模块是Python标准库的一部分,因此创建一个名为threading的模块,实际上是覆盖了标准库中的模块。因此PIL正在寻找不存在的方法和类。你需要将代码中的threading模块重命名为其他名称,这样一切都应该正常工作。

太好了!我从来没有注意过这种潜在的问题。趁此机会检查一下我的所有包名。谢谢! - kaligne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接