pypy:elementtree 标签名称只保留首字母?
pypy: elementtree tag name only preserves first letter?
我是 pypy 的新手,想看看它是否可以加快我的应用程序。 Pypy 文档说 pypy 支持标准 python 库,但有一些小例外。我遇到一个使用 ElementTree 进行 xml 解析的简单测试用例的问题表现不同,因为 pypy 只保留每个标签的第一个字母。
示例输入 XML(来自 ElementTree documentation):
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
</data>
我的python代码:
import xml.etree.ElementTree as ET
tree = ET.parse('ettest.xml')
root = tree.getroot()
print root.tag
控制台输出:
$ python ettest.py
data
$ pypy ettest.py
d
Pypy 只打印标签的第一个字母。我认为 ElementTree 是纯粹的 python 所以我想知道它是一个 pypy 错误还是我错过了一些 pypy 魔法?
作为参考,运行在Windows10 64位下,具有以下python和pypy版本:
$ python -V
Python 2.7.13 :: Continuum Analytics, Inc.
$ pypy --version
Python 2.7.13 (c925e7381036, Jun 06 2017, 05:28:16)
[PyPy 5.8.0 with MSC v.1500 32 bit]
是的,这是一个涉及 expat 库的已知错误(可能是在 PyPy 中完成的绑定)。它只出现在最近版本的 PyPy 上的 Windows 上,目前未知原因:https://bitbucket.org/pypy/pypy/issues/2641/
我是 pypy 的新手,想看看它是否可以加快我的应用程序。 Pypy 文档说 pypy 支持标准 python 库,但有一些小例外。我遇到一个使用 ElementTree 进行 xml 解析的简单测试用例的问题表现不同,因为 pypy 只保留每个标签的第一个字母。
示例输入 XML(来自 ElementTree documentation):
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
</data>
我的python代码:
import xml.etree.ElementTree as ET
tree = ET.parse('ettest.xml')
root = tree.getroot()
print root.tag
控制台输出:
$ python ettest.py
data
$ pypy ettest.py
d
Pypy 只打印标签的第一个字母。我认为 ElementTree 是纯粹的 python 所以我想知道它是一个 pypy 错误还是我错过了一些 pypy 魔法?
作为参考,运行在Windows10 64位下,具有以下python和pypy版本:
$ python -V
Python 2.7.13 :: Continuum Analytics, Inc.
$ pypy --version
Python 2.7.13 (c925e7381036, Jun 06 2017, 05:28:16)
[PyPy 5.8.0 with MSC v.1500 32 bit]
是的,这是一个涉及 expat 库的已知错误(可能是在 PyPy 中完成的绑定)。它只出现在最近版本的 PyPy 上的 Windows 上,目前未知原因:https://bitbucket.org/pypy/pypy/issues/2641/