类型错误:parse() 得到了意外的关键字参数“override_encoding”

问题描述 投票:0回答:2
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from weasyprint import HTML
>>> HTML('http://weasyprint.org/').write_pdf('/tmp/weasyprint-website.pdf')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/weasyprint/__init__.py", line 94, in __init__
    namespaceHTMLElements=False)
TypeError: parse() got an unexpected keyword argument 'override_encoding'
>>>

我相信我已经安装了所有依赖项。这是怎么回事?

python python-2.7 ubuntu-14.04 weasyprint
2个回答
0
投票

看来你也有同样的问题https://github.com/Kozea/WeasyPrint/issues/353.

可能是因为您的版本已过时

html5lib
。它至少需要是
html5lib-1.0b9
。如果您安装了
html5lib
,尽管
pip
它可能仍然是
html5lib-1.0b8
。我建议您通过这样做进行更新:

pip install --pre html5lib

-1
投票

打开文件:

/usr/local/lib/python2.7/dist-packages/weasyprint/__init__.py

更改此代码:

result = html5lib.parse(
                    source, treebuilder='lxml', override_encoding=encoding,
                    transport_encoding=protocol_encoding,
                    namespaceHTMLElements=False)

对此:

result = html5lib.parse(
                    source, treebuilder='lxml'
                )

它对我有用

OS
X
El
Capitan
10.11.6
(
15G31
)

© www.soinside.com 2019 - 2024. All rights reserved.