cairosvg使用過程中需要注意的問題


在使用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文件中文字符正常顯示了。記錄過程,方便之后查看。


免責聲明!

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



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