-
-
Notifications
You must be signed in to change notification settings - Fork 686
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Python 3 compatibility on Windows #132
Conversation
In Python 3, pathname2url accepts str (which is aliased as unicode in compat.py), so path should not be encoded.
I’ll have to review this more in depth, and possibly make larger changes. Filename handling across platform and Python version is surprisingly tricky. Can you give a specific example where this was a problem? Please include as many details about the environment (OS, locale, filesystem encoding, Python version) and data (Python code, HTML, CSS) as you can. |
Actually 0.19.2 crashes on my system even without any arguments, here is the crash output:
Information about my system:
|
I'd like to see this compatibility cleaned up as well in a future release. See stackoverflow issues [1] and [2]: |
I'm trying to make WP work on Windows with Python 2.x and 3.x (ie. fixing #331 #330 #132 #329). As said by @rhvonlehe, the Windows version of So, instead of testing the Python version, I'd prefer to call |
So… this probably requires more time to research than I have right now. But I vaguely remember thinking that we’d be better of implementing the |
@SimonSapin It's better for Python 3, but we probably need to keep bytes for Python 2 (I suppose that the
@rhvonlehe @ChameleonRed I've installed WeasyPrint on Windows 10 64 bit following these steps:
I've met the problem in #330 during my different tests. What seems to be important is:
Following these two rules on other versions of Windows (including 32 bit with 32 bit packages) should be OK. With this PR, it should even work on Windows with Python 3.5. If it works for @rhvonlehe and @ChameleonRed, I can change the documentation. |
Haha, that’s a strong supposition. Python 2 supports Unicode in |
To clarify, my suggestion to stay in Unicode all the way is if we change |
Hello folks, First of all I would like to congratulate @SimonSapin and all the project's collaborators. This is a great piece of software 👍 I also was unable to use the library with Python3 on Windows 7. After applying the pull request suggested by @SAPikachu it just works. I have tested it with a few simple HTML files and could successfully convert them to PDF. I'm not with much spare time at the moment, but I'd like to contribute by applying @SimonSapin suggestion (stay Unicode all the way). Since I did not look at the code yet, I can't imagine how big that change would be, but I will take a look at it asap. |
I understand you'd like me to install using 64-bit versions of everything EDIT: @liZe FWIW, I also have had success using weasyprint using Python 2.7. I am doubtful that simply installing 64-bit versions of Python 3.5 and GTK-3 will have an effect on #132, but I will try on my home PC this weekend hopefully. On Thu, Jul 7, 2016 at 7:41 AM, ghedin notifications@github.com wrote:
|
:) not exactly! Here's what I propose:
With these two points solved, we can consider the Windows support as quite good! |
@liZe Ah, I see. I think I can safely say I don't experience issue #329, using either 32-bit Python 2.7 or 32-bit Python 3.5, and 32-bit GTK (on 64-bit Windows 10). I think your installation guide clarifications will definitely help, though. I had the best luck following instructions here [1], rather than the current weasyprint instructions. I am willing to follow your instructions explicitly on my home machine (current no weasy installed), though, if that helps. Looking forward to your new PR for #132, thanks! |
Don't have much to contribute to the discussion except that I ran into the same problem and applying this PR fixed it for me. (Windows 7 x86_64, Python 3.4 (Installed via Anaconda), let me know if you need more info). Hope this helps! |
@SAPikachu @rhvonlehe @dom96 I've written and tested #345. Could you please check that it works for you? |
Fixed now that #345 is fixed. Thanks for your help! |
Version 0.34 ------------ Released on 2016-12-21. Bug fixes: * `#398 <https://github.com/Kozea/WeasyPrint/issues/398>`_: Honor the presentational_hints option for PDFs. * `#399 <https://github.com/Kozea/WeasyPrint/pull/399>`_: Avoid CairoSVG-2.0.0rc* on Python 2. * `#396 <https://github.com/Kozea/WeasyPrint/issues/396>`_: Correctly close files open by mkstemp. * `#403 <https://github.com/Kozea/WeasyPrint/issues/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 <https://github.com/Kozea/WeasyPrint/issues/393>`_: Add tests on MacOS. * `#370 <https://github.com/Kozea/WeasyPrint/issues/370>`_: Enable @font-face on MacOS. Bug fixes: * `#389 <https://github.com/Kozea/WeasyPrint/issues/389>`_: Always update resume_at when splitting lines. * `#394 <https://github.com/Kozea/WeasyPrint/issues/394>`_: Don't build universal wheels. * `#388 <https://github.com/Kozea/WeasyPrint/issues/388>`_: Fix logic when finishing block formatting context. Version 0.32 ------------ Released on 2016-11-17. New features: * `#28 <https://github.com/Kozea/WeasyPrint/issues/28>`_: Support @font-face on Linux. * Support CSS fonts level 3 almost entirely, including OpenType features. * `#253 <https://github.com/Kozea/WeasyPrint/issues/253>`_: Support presentational hints (optional). * Support break-after, break-before and break-inside for pages and columns. * `#384 <https://github.com/Kozea/WeasyPrint/issues/384>`_: Major performance boost. Bux fixes: * `#368 <https://github.com/Kozea/WeasyPrint/issues/368>`_: Respect white-space for shrink-to-fit. * `#382 <https://github.com/Kozea/WeasyPrint/issues/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 <https://github.com/Kozea/WeasyPrint/issues/355>`_: Add fonts requirements for tests. Version 0.31 ------------ Released on 2016-08-28. New features: * `#124 <https://github.com/Kozea/WeasyPrint/issues/124>`_: Add MIME sniffing for images. * `#60 <https://github.com/Kozea/WeasyPrint/issues/60>`_: CSS Multi-column Layout. * `#197 <https://github.com/Kozea/WeasyPrint/pull/197>`_: Add hyphens at line breaks activated by a soft hyphen. Bux fixes: * `#132 <https://github.com/Kozea/WeasyPrint/pull/132>`_: Fix Python 3 compatibility on Windows. Documentation: * `#329 <https://github.com/Kozea/WeasyPrint/issues/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 <https://github.com/Kozea/WeasyPrint/issues/325>`_: Cutting lines is broken in page margin boxes. * `#334 <https://github.com/Kozea/WeasyPrint/issues/334>`_: Newest html5lib 0.999999999 breaks rendering. Version 0.29 ------------ Released on 2016-06-17. Bug fixes: * `#263 <https://github.com/Kozea/WeasyPrint/pull/263>`_: Don't crash with floats with percents in positions. * `#323 <https://github.com/Kozea/WeasyPrint/pull/323>`_: Fix CairoSVG 2.0 pre-release dependency in Python 2.x. Version 0.28 ------------ Released on 2016-05-16. Bug fixes: * `#189 <https://github.com/Kozea/WeasyPrint/issues/189>`_: ``white-space: nowrap`` still wraps on hyphens * `#305 <https://github.com/Kozea/WeasyPrint/issues/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 <https://github.com/Kozea/WeasyPrint/pull/295>`_: Support the 'rem' unit. * `#299 <https://github.com/Kozea/WeasyPrint/pull/299>`_: Enhance the support of SVG images. Bug fixes: * `#307 <https://github.com/Kozea/WeasyPrint/issues/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 <https://github.com/Kozea/WeasyPrint/issues/297>`_: Rewrite the CSS chapter of the documentation.
I am getting cool to work in ubuntu box but I am struggling in this issue in windows box. I have installed gtk and have path in environment variables and also installed the visual c++ compiler for python. But no luck. Please help me on this @SAPikachu @liZe |
In Python 3,
pathname2url
acceptsstr
(which is aliased asunicode
incompat.py
), sopath
should not be encoded.