轉自 處理老版PIL 到 pillow

幫新同事部署開發環境, 因爲項目代碼裏用到了PIL庫處理圖片, 致使一些圖片在瀏覽器中沒法正常顯示.  
幾番折騰, 解決了問題, 這裏記錄一下報的問題, 及解決方法:  

1. python版本不對, 64位的python不能裝上,也不可能裝得上32位的PIL, 因此先把PY換成32位版本, 這個是最早搞清楚的.沒有異議.  

2. 安裝PIL官方編譯的包以後, 會發生著名的: The _imagingft C module is not installed , 此時最好從新下一個:  
地址在  http://www.lfd.uci.edu/~gohlke/pythonlibs/   
這裏是一些第三方組織編譯的EXE包, 要下載對應PY版本的PIL, 從新安裝, 最好下載Pillow, 它是對PIL的一些BUG修正後的編譯版  
安裝前,能夠先 pip uninstall pil  

3. 安裝Pillow後, 可能還會發生KeyError的錯誤, 檢查項目源碼後發現是 Image 模塊的save函數中 , 處理圖片文件格式時報的錯.  
無論是"JPEG", 仍是"GIF", 都會報錯, 解決的辦法是:  
把項目源碼中 import Image , 替換成 from PIL import Image 便可.  
按這個原理, 項目中全部用到 Image 模塊的地方都應該替換掉.  


另外, 能夠在cmd console中測試 Image的SAVE字典,  
>>> import Image  
>>> Image.init()  
1  
>>> Image.SAVE.keys()  
['XBM', 'PCX', 'SPIDER', 'HDF5', 'TIFF', 'BUFR', 'EPS', 'JPEG', 'MSP', 'GRIB', '  
GIF', 'BMP', 'TGA', 'IM', 'PPM', 'PDF', 'FITS', 'PALM', 'WMF', 'PNG']  

通過上面的測試後, 若是 Image.SAVE.keys() 輸出爲空,則說明沒有找到 save format key, 在生成圖片時就會報KeyError, 此時就須要把第一行改爲: from PIL import Image python

相關文章
相關標籤/搜索