我似乎无法让WeasyPrint使用Python3.4或3.5在Windows上工作。有人能做到吗?weasyprint.org没有论坛,IRC频道也死了。
我已经能够使用Python3.4.3和3.5.1进行安装。我还注意到,WeasyPrint的站点声称它应该与Python或2.6+一起工作。
当我为Python3.4.3安装并打开Python并简单地‘导入weasyprint’时,我得到如下信息:
C:\Python34>python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import weasyprint
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python34\lib\site-packages\weasyprint\__init__.py", line 337, in <module>
from .html import find_base_url, HTML5_UA_STYLESHEET, get_html_metadata # noqa
File "C:\Python34\lib\site-packages\weasyprint\html.py", line 41, in <module>
HTML5_UA_STYLESHEET = CSS(filename=os.path.join(root, 'css', 'html5_ua.css'))
File "C:\Python34\lib\site-packages\weasyprint\__init__.py", line 224, in __init__
with result as (source_type, source, base_url, protocol_encoding):
File "C:\Python34\lib\contextlib.py", line 59, in __enter__
return next(self.gen)
File "C:\Python34\lib\site-packages\weasyprint\__init__.py", line 294, in _select_source
base_url = path2url(filename)
File "C:\Python34\lib\site-packages\weasyprint\urls.py", line 87, in path2url
path = pathname2url(path)
File "C:\Python34\lib\nturl2path.py", line 46, in pathname2url
if not ':' in p:
TypeError: 'str' does not support the buffer interface
>>>在Python3.5.1中导入时,我得到了类似的跟踪,但最终的TypeError是:
TypeError: a bytes-like object is required, not 'str'发布于 2016-06-28 16:52:02
我查看了weasyprint.org的问题列表,没有发现其他人抱怨Python3.x与WeasyPrint的兼容性。然后,我碰巧接到了一个拉力请求,它确实抱怨过这一点,正好反映了我的困难。因此,它不适用于Python3.x,但使用一次小小的黑客就可以了,参见1。我将在拉请求中添加一些注释,希望这种不兼容性能够得到关注。
https://stackoverflow.com/questions/37994733
复制相似问题