Hi folks,
I'd like to use lxml library to validate XML Schemas in Python 3.1.2.
Since the Snow Leopard MAC OS comes with the Python 2.6.1 installed, firstly, I downloaded the Python 3.1.2 automated installer at http://www.python.org/ftp/python/3.1.2/python-3.1.2-macosx10.3-2010-03-24.dmg and installed it.
Secondly, I downloaded lxml 2.2.6 at http://pypi.python.org/packages/source/l/lxml/lxml-2.2.6.tar.gz, unpacked it and performed the installation as stated in http://wiki.python.org/moin/CheeseShopTutorial (i.e.:)
$ cd lxml-2.2.6
$ python setup.py install
It installed the package with no troubles at my Python 2.6 distribution site-packages directory (/Library/Python/2.6/site-packages), but I'd like to have it installed in my Python 3.1 distribution site-packages directory (/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/site-packages).
I tried to replace python setup.py install
with python3 setup.py install
, but I've got a lot of error messages in the console. Installing the lxml by using easy_install lxml
had the same effect.
As a last resort, I tried simply to move the content of the Python 2.6 distribution site-packages directory to the Python 3.1 distribution site-packages directory and run a test script like this:
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)
And I got this error message in the console:
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+
As suggested by Ned Deily, I did the following:
$ 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
But I've got some compiler error messages, the file http://www.educoelho.com/files/output.txt
How can I get lxml running in Python 3.1?
Thanks in advance.