爬坑PIL,文件名Image與類Image()重名,導致引用new,open不成功,報錯 type object 'Image' has no attribute 'new'


網上的東西真坑人啊

在知乎里看到的最有意思的python項目,於是選了一個qrcode二維碼的項目來自己嘗試

github里下載到pycharm之后就開始了踩坑之路。

先說安裝pillow

升級pip到19.2.3版本之后,安裝pillow(pip install pillow)

之后嘗試導入 import Pillow / import pillow / import PIL

死活沒有,我很納悶。卸了重裝都沒效果依舊導入失敗。

然后手動查找到底有沒有,於是打開site-package。

大爺的

竟然是pil

於是 import pil

成功了!花了我半天時間出坑了

接下來是另一個坑

PIL.Image.new

報錯type object 'Image' has no attribute 'new',說明沒有Image下new這個方法,引用open也是同樣的報錯

我又開始納悶,

再次上網搜,無果!網上都說的風馬牛不相及,好像沒人遇到我這種坑。

於是靠自己,深入虎穴一探究竟,打開了Image.py,好長的文件,第一個就是Class Image:類,這個里面竟然沒有def new(),難怪沒辦法引用,納悶呢。。。忽然發現文件靠下位置有def new()

這下我明白了

這貨沒在類里所以無法調用,正確的寫法應該是

class Image:

    def new()

     .......

於是我把def new():復制到類下面

再引用就有了,這坑又花了半天,my god

反過來看就明白了好多,當from PIL.Image  import Image 這里是導入的class Image類 

                                          然而 Image.new無法引用,說明了類下面沒有'定義new

                                        所以,文件名與類名最好不要重復,否則又是坑。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM