Setup using pip broken since CairoSVG dropped Python 2 support #394

Closed
KarelJakubec opened this Issue Nov 26, 2016 · 4 comments

Comments

Projects
None yet
3 participants
@KarelJakubec

KarelJakubec commented Nov 26, 2016

Hi Kozea,
I am experiencing problems with installing WeasyPrint 0.32 into my python 2.7.12 virtualenv using pip. It is caused by new release of CairoSVG (2.0), which setup fails cause it no longer supports Python 2.

Problem seems to be in METADATA file which contains dependency on cairosvg >= 1.0.20. This automatically downloads CairoSVG 2.0 and so it fails.

Metadata-Version: 2.0
Name: WeasyPrint
Version: 0.32
Summary: WeasyPrint converts web documents to PDF.
Home-page: http://weasyprint.org/
Author: Simon Sapin
Author-email: simon.sapin@kozea.fr
License: BSD
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Text Processing :: Markup :: HTML
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Classifier: Topic :: Printing
Requires-Dist: CairoSVG (>=1.0.20)
Requires-Dist: Pyphen (>=0.8)
Requires-Dist: cairocffi (>=0.5)
Requires-Dist: cffi (>=0.6)
Requires-Dist: cssselect (>=0.6)
Requires-Dist: html5lib (>=0.999999999)
Requires-Dist: lxml (>=3.0)
Requires-Dist: tinycss (>=0.4)

I've seen that there is already a patch solving this problem in setup.py, which should limit the CairoSVG version to 1.0.20 but somehow it is not applied in package in PyPI. I would suggest that the package was built in Python 3 environment and so the extra dependency was therefore skipped. However I am not an expert on Python packaging so I am not sure if such a scenario is even possible.

The workaround to make things working is to set CairoSVG==1.0.20 in your requirements.txt file (or whenever you store packages your projects) which should effectively freeze it.

@liZe liZe added the bug label Nov 27, 2016

@liZe

This comment has been minimized.

Show comment
Hide comment
@liZe

liZe Nov 27, 2016

Member

There's some code in setup.py to avoid this, but for some reason it doesn't work (maybe because of the wheel).

Member

liZe commented Nov 27, 2016

There's some code in setup.py to avoid this, but for some reason it doesn't work (maybe because of the wheel).

@liZe

This comment has been minimized.

Show comment
Hide comment
@liZe

liZe Nov 27, 2016

Member

I've removed the wheel, it seems to work now. @KarelJakubec You can close this issue if it's fixed for you too.

Member

liZe commented Nov 27, 2016

I've removed the wheel, it seems to work now. @KarelJakubec You can close this issue if it's fixed for you too.

@aschosser

This comment has been minimized.

Show comment
Hide comment
@aschosser

aschosser Nov 27, 2016

@KarelJakubec

This comment has been minimized.

Show comment
Hide comment
@KarelJakubec

KarelJakubec Nov 27, 2016

Hi,
@aschosser it was not an upgrade but a fresh installation. We have a machine setup which had WeasyPrint freezed to 0.26. Once CairoSVG 2.0 was released it became to fail. At first I though it would be enough just to update to the newest WeasyPrint, but I experienced the same problem, so I examined the dependencies and the rest is described above...:)

@liZe Anyway it works for me now, so I am closing the issue.

Thank you for help, best regards
Karel

Hi,
@aschosser it was not an upgrade but a fresh installation. We have a machine setup which had WeasyPrint freezed to 0.26. Once CairoSVG 2.0 was released it became to fail. At first I though it would be enough just to update to the newest WeasyPrint, but I experienced the same problem, so I examined the dependencies and the rest is described above...:)

@liZe Anyway it works for me now, so I am closing the issue.

Thank you for help, best regards
Karel

jsonn pushed a commit to jsonn/pkgsrc that referenced this issue Jan 15, 2017

kleink
Update py-weasyprint to 0.34.
Version 0.34
------------

Released on 2016-12-21.

Bug fixes:

* `#398 <Kozea/WeasyPrint#398>`_:
  Honor the presentational_hints option for PDFs.
* `#399 <Kozea/WeasyPrint#399>`_:
  Avoid CairoSVG-2.0.0rc* on Python 2.
* `#396 <Kozea/WeasyPrint#396>`_:
  Correctly close files open by mkstemp.
* `#403 <Kozea/WeasyPrint#403>`_:
  Cast the number of columns into int.
* Fix multi-page multi-columns and add related tests.


Version 0.33
------------

Released on 2016-11-28.

New features:

* `#393 <Kozea/WeasyPrint#393:
  Add tests on MacOS.
* `#370 <Kozea/WeasyPrint#370>`_:
  Enable @font-face on MacOS.

Bug fixes:

* `#389 <Kozea/WeasyPrint#389>`_:
  Always update resume_at when splitting lines.
* `#394 <Kozea/WeasyPrint#394>`_:
  Don't build universal wheels.
* `#388 <Kozea/WeasyPrint#388>`_:
  Fix logic when finishing block formatting context.


Version 0.32
------------

Released on 2016-11-17.

New features:

* `#28 <Kozea/WeasyPrint#28>`_:
  Support @font-face on Linux.
* Support CSS fonts level 3 almost entirely, including OpenType features.
* `#253 <Kozea/WeasyPrint#253>`_:
  Support presentational hints (optional).
* Support break-after, break-before and break-inside for pages and columns.
* `#384 <Kozea/WeasyPrint#384:
  Major performance boost.

Bux fixes:

* `#368 <Kozea/WeasyPrint#368>`_:
  Respect white-space for shrink-to-fit.
* `#382 <Kozea/WeasyPrint#382>`_:
  Fix the preferred width for column groups.
* Handle relative boxes in column-layout boxes.

Documentation:

* Add more and more documentation about Windows installation.
* `#355 <Kozea/WeasyPrint#355:
  Add fonts requirements for tests.


Version 0.31
------------

Released on 2016-08-28.

New features:

* `#124 <Kozea/WeasyPrint#124>`_:
  Add MIME sniffing for images.
* `#60 <Kozea/WeasyPrint#60>`_:
  CSS Multi-column Layout.
* `#197 <Kozea/WeasyPrint#197>`_:
  Add hyphens at line breaks activated by a soft hyphen.

Bux fixes:

* `#132 <Kozea/WeasyPrint#132>`_:
  Fix Python 3 compatibility on Windows.

Documentation:

* `#329 <Kozea/WeasyPrint#329>`_:
  Add documentation about installation on Windows.


Version 0.30
------------

Released on 2016-07-18.

WeasyPrint now depends on html5lib-0.999999999.

Bux fixes:

* Fix Acid2
* `#325 <Kozea/WeasyPrint#325>`_:
  Cutting lines is broken in page margin boxes.
* `#334 <Kozea/WeasyPrint#334>`_:
  Newest html5lib 0.999999999 breaks rendering.


Version 0.29
------------

Released on 2016-06-17.

Bug fixes:

* `#263 <Kozea/WeasyPrint#263:
  Don't crash with floats with percents in positions.
* `#323 <Kozea/WeasyPrint#323>`_:
  Fix CairoSVG 2.0 pre-release dependency in Python 2.x.


Version 0.28
------------

Released on 2016-05-16.

Bug fixes:

* `#189 <Kozea/WeasyPrint#189>`_:
  ``white-space: nowrap`` still wraps on hyphens
* `#305 <Kozea/WeasyPrint#305>`_:
  Fix crashes on some tables
* Don't crash when transform matrix isn't invertible
* Don't crash when rendering ratio-only SVG images
* Fix margins and borders on some tables


Version 0.27
------------

Released on 2016-04-08.

New features:

* `#295 <Kozea/WeasyPrint#295>`_:
  Support the 'rem' unit.
* `#299 <Kozea/WeasyPrint#299>`_:
  Enhance the support of SVG images.

Bug fixes:

* `#307 <Kozea/WeasyPrint#307>`_:
  Fix the layout of cells larger than their tables.

Documentation:

* The website is now on GitHub Pages, the documentation is on Read the Docs.
* `#297 <Kozea/WeasyPrint#297>`_:
  Rewrite the CSS chapter of the documentation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment