2016-01-05 95 views
3

我只是想嘗試一段代碼將圖像粘貼到另一個上面。那麼,我不能再進一步了,因爲AttributeError在進口時正好提出。無法導入PIL圖像

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(),但我不知道在這裏做什麼。

什麼建議嗎?

+0

有趣。 '導入線程'在你的系統上工作嗎?怎麼樣'進口線程;打印threading.RLock'? – Kevin

回答

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

這部分例外情況表明您的代碼中有一個稱爲線程的模塊。然而,threading模塊是標準庫的一部分,通過創建一個稱爲線程的模塊,您幾乎可以覆蓋標準模塊。所以PIL正在尋找那些不存在的方法和類。你將不得不將代碼中的線程模塊重命名爲其他東西,並且一切都應該正常工作。

+0

完美!我從來沒有注意到這種潛在的問題。更好地檢查我所有的軟件包名稱。謝謝! – kaligne