The best I have found is weasyprint .
From the documentation :
from weasyprint import HTML HTML('http://weasyprint.org/').write_pdf('/tmp/weasyprint-website.pdf')
and it really is that simple. I saved a lot of time (after I took the time to get xhtml2pdf and others to work on python 3, but failed.
source share