gpt4 book ai didi

Python 3.1.2 + 雪豹 + lxml + XMLSchema

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:48 24 4
gpt4 key购买 nike

我想使用 lxml 库来验证 Python 3.1.2 中的 XML 架构。

由于 Snow Leopard MAC OS 预装了 Python 2.6.1,因此我首先在 http://www.python.org/ftp/python/3.1.2/python-3.1.2-macosx10.3-2010-03-24.dmg 下载了 Python 3.1.2 自动安装程序。并安装了它。

其次,我在http://pypi.python.org/packages/source/l/lxml/lxml-2.2.6.tar.gz下载了lxml 2.2.6 ,将其解压并按照 http://wiki.python.org/moin/CheeseShopTutorial 中所述执行安装。 (即:)

  $ cd lxml-2.2.6
$ python setup.py install

它在我的 Python 2.6 分发站点包目录 (/Library/Python/2.6/site-packages) 中顺利安装了该包,但我想将其安装在我的 Python 3.1 分发站点包目录中(/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/site-packages)。

我尝试将 python setup.py install 替换为 python3 setup.py install,但控制台中出现很多错误消息。使用 easy_install lxml 安装 lxml 具有相同的效果。

作为最后的手段,我尝试将 Python 2.6 分发站点包目录的内容移动到 Python 3.1 分发站点包目录并运行如下测试脚本:

try:
from lxml import etree
print("running with lxml.etree")
except ImportError:
try:
# Python 2.5
import xml.etree.cElementTree as etree
print("running with cElementTree on Python 2.5+")
except ImportError:
try:
# Python 2.5
import xml.etree.ElementTree as etree
print("running with ElementTree on Python 2.5+")
except ImportError:
try:
# normal cElementTree install
import cElementTree as etree
print("running with cElementTree")
except ImportError:
try:
# normal ElementTree install
import elementtree.ElementTree as etree
print("running with ElementTree")
except ImportError:
print("Failed to import ElementTree from any known place")


schema_root = etree.parse('note.xsd').getroot()
schema = etree.XMLSchema(schema_root)
parser = etree.XMLParser(schema = schema)
root = etree.parse('note.xml', parser)

我在控制台中收到此错误消息:

Traceback (most recent call last):
File "/Users/eduardo/Workspace/PythonToolbox/TestProject/src/testproject/domparse.py", line 97, in <module>
schema = etree.XMLSchema(schema_root)
AttributeError: 'module' object has no attribute 'XMLSchema'
running with cElementTree on Python 2.5+

按照 Ned Deily 的建议,我执行了以下操作:

$ curl http://pypi.python.org/packages/source/l/lxml/lxml-2.2.6.tar.gz | tar xz 
$ cd lxml-2.2.6
$ python3 setup.py install

但是我收到了一些编译器错误消息,文件 http://www.educoelho.com/files/output.txt

如何让 lxml 在 Python 3.1 中运行?

提前致谢。

最佳答案

如果您要从源代码构建 lxml,则需要完全使用所需的 Python 来构建它。而且,一般来说,您不能只是将站点包从一个 Python 实例移动到另一个 Python 实例,尤其是 Python 2 与 Python 3。首先,撤消您对 Python 3 站点包目录所做的任何复制或移动。如果您不确定自己做了什么,您应该考虑重新安装 Python 3.1。现在从 tar 文件中的 lxml 源的干净副本开始,并尝试使用 python3.1 构建它:

$ rm -r lxml-2.2.6
$ curl http://pypi.python.org/packages/source/l/lxml/lxml-2.2.6.tar.gz | tar xz
$ cd lxml-2.2.6
$ python3 setup.py install

如果出现错误,请更新您的问题以准确显示出现的错误消息。

编辑:相关的错误消息是这样的:

Compiling with an SDK that doesn't seem to exist: /Developer/SDKs/MacOSX10.4u.sdk

大多数 python.org python 都是为在多个版本的 OS X 上工作而构建的,因此它们使用可选的 10.4 SDK。 Apple 10.6 Snow Leopard 的 Xcode 安装程序包含 10.4u SDK,但默认情况下不安装。您需要使用 Xcode 安装程序(在 Snow Leopard DVD 上或新 Mac 附带的安装程序或从 Apple Developer Connection 下载)来安装它。

关于Python 3.1.2 + 雪豹 + lxml + XMLSchema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3195067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com