在使用pygal的過程中,圖片默認保存的是svg格式,如果需要生成本地的圖片需要進行一些配置。下面是在摸索時的一些流程:
1.查看pygal的函數,dir(pygal.bar),發現其支持保存為png圖片的,提供現有函數pygal.Bar.render_to_png(),但是在直接應用會報錯,提示沒有安裝cairosvg安裝包。
2.安裝cairosvg,完成后import cairosvg發現缺少支撐包cairocffi。繼續安裝,默認pip安裝經常會出錯,可以更改默認地址,可以使用 https://pypi.tuna.tsinghua.edu.cn/simple ,有時候也會中途出錯,可以直接訪問網址下載.whl文件到本地進行安裝,一般不會再出現問題。
3.安裝完上述環境后,發現還是提示缺少包
File "<stdin>", line 1, in <module>
File "C:\Users\wu_xiang\AppData\Local\Programs\Python\Python36\lib\site-packa
es\cairocffi\__init__.py", line 50, in <module>
('libcairo.so', 'libcairo.2.dylib', 'libcairo-2.dll'))
File "C:\Users\wu_xiang\AppData\Local\Programs\Python\Python36\lib\site-packa
es\cairocffi\__init__.py", line 45, in dlopen
raise OSError(error_message) # pragma: no cover
OSError: no library called "cairo" was found
no library called "libcairo-2" was found
cannot load library 'libcairo.so': error 0x7e
cannot load library 'libcairo.2.dylib': error 0x7e
cannot load library 'libcairo-2.dll': error 0x7e
缺少libcairo-2一系列包,這些二維圖形數據包,經https://blog.csdn.net/hacklyc/article/details/77101965提示,可以安裝GTK獲的。而原貼的下載地址失效了,找到了一個新的地址,但是只有.2版本的,經測試也可以正常使用
http://ftp.acc.umu.se/pub/GNOME/binaries/win64/
下載gtk相關文件,並把目錄下bin文件添加到環境變量的path值中,再嘗試運行import cairosvg。
4.還是報錯了,額,發現是pygal的版本太低,查詢下安裝的pygal版本,pygal.__version__,發現只是1.0的,更新pygal的版本到2.4.0。發現可以正常運行了。pygal.Bar.render_to_png(“test.png”)可以生成相應圖片。
5.生成的圖片設置有中文字符,發現生成的svg文件可以正常顯示,而png文件不能正常顯示。
設置pygal.style:
from pygal.style import Style style=Style(font_family="SimHei") *snip* hist=pygal.Bar(style=style) *snip* hist.render_to_png("save.png")
生成的png文件中文字符正常顯示了。記錄過程,方便之后查看。