我想使用lxml库来验证Python 3.1.2中的XML模式。
由于Snow Leopard MAC OS附带安装了Python2.6.1,因此首先,我从http://www.python.org/ftp/python/3.1.2/python-3.1.2-macosx10.3-2010-03-24.dmg下载了Python3.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在我的Python2.6发行版站点-packages目录(/Library/ Python / 2.6 / site-packages )中顺利地安装了该包,但我希望将其安装在Python3.1发行版站点-packages目录(/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/site-packages).中
我试图用python3 setup.py install替换python 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
如何在Python3.1中运行lxml?
提前谢谢。
发布于 2010-07-08 02:07:15
如果要从源代码构建lxml,则需要完全使用所需的Python进行构建。一般来说,您不能简单地将站点包从一个Python实例移动到另一个实例,尤其是Python2与Python3。首先,撤消复制或移动到Python3站点包目录中所做的任何操作。如果你不确定你做了什么,你应该考虑重新安装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蟒蛇是为在多个版本的OS上工作而构建的,因此它们使用可选的10.4SDK。苹果用于10.6雪豹的Xcode安装程序包括10.4u SDK,但它不是默认安装的。您需要使用Xcode安装程序(在Snow Leopard DVD上或随新Mac附带的安装程序或从Apple Developer Connection下载)来安装它。
发布于 2011-07-04 16:43:53
我在Mac上安装lxml时也遇到了问题,但这对我很有效:
sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install lxmlhttps://stackoverflow.com/questions/3195067
复制相似问题