2017-09-17 10 views
0

에서 작업 cairosvg 수 :이 코드 동작하지 않아서 창

import cairosvg 
import os 

path = "D:/PyProjects/Bla/Temp" 
os.chdir(path) 

cairosvg.svg2pdf(url='Pic.svg', write_to='image.pdf') 

을하지만, 유사한 함께 오류를 얻을이 post :

Traceback (most recent call last): 
    File "D:/work/lean_python/pdf/other.py", line 2, in <module> 
    import cairosvg 
    File "D:\env_python352\lib\site-packages\cairosvg\__init__.py", line 29, in <module> 
    from . import surface 
    File "D:\env_python352\lib\site-packages\cairosvg\surface.py", line 24, in <module> 
    import cairocffi as cairo 
    File "D:\env_python352\lib\site-packages\cairocffi\__init__.py", line 46, in <module> 
    cairo = dlopen(ffi, 'cairo', 'cairo-2') 
    File "D:\env_python352\lib\site-packages\cairocffi\__init__.py", line 43, in dlopen 
    raise OSError("dlopen() failed to load a library: %s" % '/'.join(names)) 
OSError: dlopen() failed to load a library: cairo/cairo-2 

게시물이 언급 : 그래서

CairoSVG (the python library and bindings) needs Cairo (The C library, part of GTK+) to run. It appears you don't have it an it's headers installed on your system. 

나는 here이라고 기술 된 1 - 5 단계를 따랐다. 다른 소스에서 추천

C:\msys64\mingw64\include\cairo 

I도 설치 pycairo : 지금의 카이로 헤더 파일이

pip install pycairo-1.15.2-cp36-cp36m-win_amd64.whl 

나는 여전히 위의 오류를 얻을. 어떤 아이디어?

답변

0

나는 단지 cairosvg가 작동하지 않습니다. svgl 패키지를 사용하여 svg를 png로 변환하는 다른 방법을 찾았습니다.

from svglib.svglib import svg2rlg 
from reportlab.graphics import renderPDF, renderPM 
import os 

path = "D:/Bla/Temp" 
os.chdir(path) 

drawing = svg2rlg("Pic.svg") 
renderPM.drawToFile(drawing, "Pic.png")