Je voudrais utiliser la bibliothèque lxml pour valider les schémas XML dans Python 3.1.2.Python 3.1.2 + Snow Leopard + lxml + XMLSchema
Puisque le système d'exploitation MAC Snow Leopard est livré avec le Python 2.6.1 installé, j'ai d'abord téléchargé le programme d'installation automatique Python 3.1.2 au http://www.python.org/ftp/python/3.1.2/python-3.1.2-macosx10.3-2010-03-24.dmg et l'ai installé.
Deuxièmement, je téléchargé lxml 2.2.6 à http://pypi.python.org/packages/source/l/lxml/lxml-2.2.6.tar.gz, décompressé et exécuté l'installation comme indiqué dans http://wiki.python.org/moin/CheeseShopTutorial (ie :)
$ cd lxml-2.2.6
$ python setup.py install
Il a installé le paquet sans problèmes à ma distribution Python 2.6 site- le répertoire des paquets (/Library/Python/2.6/site-packages), mais je voudrais l'installer dans mon répertoire de paquets-sites de distribution Python 3.1 (/Library/Frameworks/Python.framework/Versions/3.1/lib/python3 .1/packages de sites). J'ai essayé de remplacer python setup.py install
par python3 setup.py install
, mais j'ai beaucoup de messages d'erreur dans la console. L'installation du fichier XML en utilisant easy_install lxml
a eu le même effet.
En dernier recours, j'ai essayé simplement de déplacer le contenu de la distribution Python 2.6 site-packages vers le répertoire site-packages de distribution Python 3.1 et exécuter un script de test comme celui-ci:
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)
Et J'ai reçu ce message d'erreur dans la 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+
Comme suggéré par Ned Deily, je l'ai fait ce qui suit:
$ 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
Mais j'ai des messages d'erreur du compilateur, le fichier
Comment puis-je faire fonctionner lxml en Python 3.1?
Merci d'avance.
Hey Ned, apprécier votre réponse. Je vais modifier la question montrant le message d'erreur. –
Ah, voir la réponse éditée ci-dessus. –
Merci Ned Deily! J'ai téléchargé la dernière version du SDK (xcode_3.2.3_and_iphone_sdk_4__final.dmg) et j'ai réinstallé le XCode/SDK avec la case à cocher MacOSX10.4u.sdk marquée (ce qui n'est pas le cas par défaut). Maintenant, mon répertoire/Developer/SDKs a également le MacOSX10.4u.sdk. J'ai répété vos étapes d'installation et maintenant lxml fonctionne correctement dans Python 3.1.2. Merci! –