我想在Python 3.1.2中使用lxml库来验证XML Schema。Python 3.1.2 + Snow Leopard + lxml + XMLSchema
由于Snow Leopard MAC OS安装了Python 2.6.1,我首先下载了Python 3.1.2自动安装程序http://www.python.org/ftp/python/3.1.2/python-3.1.2-macosx10.3-2010-03-24.dmg并安装它。
其次,我在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分发定点后患安装包packages目录(/Library/Python/2.6/site-packages),但是我想将它安装在我的Python 3.1发行版的站点包目录中(/Library/Frameworks/Python.framework/Versions/3.1/lib/python3 ·1 /站点包)。
我试图用python3 setup.py install
替换python setup.py install
,但是我在控制台中有很多错误消息。使用easy_install lxml
安装lxml具有相同的效果。
作为最后的手段,我想简单地添加到Python 2.6分发site-packages目录的内容移动到了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+
正如斯内德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
我怎样才能获得在Python 3.1中运行lxml?
在此先感谢。
嘿斯内德,感谢您的答复。我将编辑显示错误消息的问题。 – 2010-07-07 19:18:52
啊,看看上面编辑的答案。 – 2010-07-07 19:51:18
谢谢Ned Deily!我下载了最新版本的SDK(xcode_3.2.3_and_iphone_sdk_4__final.dmg),并重新安装了标有MacOSX10.4u.sdk复选框的XCode/SDK(这不是默认设置)。现在我的/ Developer/SDKs目录也有MacOSX10.4u.sdk。我重复了你的安装步骤,现在lxml在Python 3.1.2中正常工作。谢谢! – 2010-07-07 22:34:53