I need to convert some SVG files to PDF files using Python on Windows 10.
For this purpose I have installed the CairoSVG package using the pip command:
pip install cairosvg
It is the latest version (2.7.1) of CairoSVG.
Everything seems to be installed and configured correctly.
A few key details:
D:\Program Files\Python312
.D:\Program Files\Python312
and D:\Program Files\Python312\Scripts
.I tried to run following code from here:
import cairosvg
def export_svg(request):
# Get data from POST
svg = request.POST.get("svg")
pdf = cairosvg.svg2pdf(bytestring=svg.encode("utf-8"))
# The pdf is now a bytestring that can be returned instead of saving to disk.
response = HttpResponse(mimetype='application/pdf')
response.write(pdf)
Running this code will result into following error:
PS D:\Project WebAuthn> & "D:/Program Files/Inkscape/bin/python.exe" c:/Users/USER/Desktop/Python-Projekte/gtk.py
Traceback (most recent call last):
File "c:\Users\USER\Desktop\Python-Projekte\gtk.py", line 1, in <module>
import cairosvg
ModuleNotFoundError: No module named 'cairosvg'
After trying to reinstall CairoSVG using pip command twice, I got following output in the console:
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: cairosvg in c:\users\USER\appdata\roaming\python\python312\site-packages (2.7.1)
Requirement already satisfied: cairocffi in c:\users\USER\appdata\roaming\python\python312\site-packages (from cairosvg) (1.6.1)
Requirement already satisfied: cssselect2 in c:\users\USER\appdata\roaming\python\python312\site-packages (from cairosvg) (0.7.0)
Requirement already satisfied: defusedxml in c:\users\USER\appdata\roaming\python\python312\site-packages (from cairosvg) (0.7.1)
Requirement already satisfied: pillow in c:\users\USER\appdata\roaming\python\python312\site-packages (from cairosvg) (10.1.0)
Requirement already satisfied: tinycss2 in c:\users\USER\appdata\roaming\python\python312\site-packages (from cairosvg) (1.2.1)
Requirement already satisfied: cffi>=1.1.0 in c:\users\USER\appdata\roaming\python\python312\site-packages (from cairocffi->cairosvg) (1.16.0)
Requirement already satisfied: webencodings in c:\users\USER\appdata\roaming\python\python312\site-packages (from cssselect2->cairosvg) (0.5.1)
Requirement already satisfied: pycparser in c:\users\USER\appdata\roaming\python\python312\site-packages (from cffi>=1.1.0->cairocffi->cairosvg) (2.21)
I am confused. What's wrong? Why can the installed module CairoSVG not be found?
Believe me, I have tried pretty much everything but my problem couldn't be solved.
Help me!
You need to use the Python extension to execute the code and choose the correct interpreter for it (Ctrl+Shift+P --> Python: Select Interpreter
). The current interpreter version will be displayed in the lower right corner, and you can also switch by clicking it.
Switch to the interpreter installed with the cairosvg
package.
As far as your problem is concerned, your cairosvg is installed in c:\users\USER\appdata\roaming\python\python312\site-packages
,
But the interpreter you currently use is D:/Program Files/Inkscape/bin/python.exe
.
Switch the interpreter to c:\users\USER\appdata\roaming\python\python312
.
Install the cairosvg package for the current Python environment (D:/Program Files/Inkscape/bin/python.exe
).