pypy:elementtree标记名只保留第一个字母?

2024-05-23 14:18:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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 bug还是缺少了pypy魔法?你知道吗

供参考,运行在64位Windows 10下,具有以下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]

Tags: namedataversion字母xmlpypyyearcountry
1条回答
网友
1楼 · 发布于 2024-05-23 14:18:55

是的,这是一个已知的bug,涉及expat库(可能是PyPy中的绑定)。它只在最新版本的PyPy上出现在Windows上,原因目前还不得而知:https://bitbucket.org/pypy/pypy/issues/2641/

相关问题 更多 >