2010-03-03 23 views
22

He comprendido que ElementTree no hará lo que yo quiero que haga. Revisé la documentación de lxml y parece que servirá para mis propósitos. Para obtener lxml, necesito obtener easy_install. Así que lo descargué de here, y lo puse en /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/. Luego fui a esa carpeta y ejecuté sh setuptools-0.6c11-py2.6.egg.Instalación de easy_install ... para llegar a la instalación de lxml

Eso se instaló correctamente. Luego me emocioné porque pensé que el objetivo de easy_install era que simplemente pudiera instalarlo a través de easy_install lxml, y lxml mágicamente se descargaría, compilaría e instalaría correctamente, listo para mi disfrute de importación. Así que ejecuté easy_install lxml. Pegué los resultados a continuación. ¿Que debería hacer?

easy_install lxml 
Searching for lxml 
Reading http://pypi.python.org/simple/lxml/ 
Reading http://codespeak.net/lxml 
Best match: lxml 2.2.6 
Downloading http://codespeak.net/lxml/lxml-2.2.6.tgz 
Processing lxml-2.2.6.tgz 
Running lxml-2.2.6/setup.py -q bdist_egg --dist-dir /var/folders/49/49N0+g5QFKCm51AbzMtghE+++TI/-Tmp-/easy_install-rxbP6K/lxml-2.2.6/egg-dist-tmp-fjakR0 
Building lxml version 2.2.6. 
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available. 
Using build configuration of libxslt 1.1.12 
Building against libxml2/libxslt in the following directory: /usr/lib 
unable to execute gcc-4.0: No such file or directory 
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1 
+1

(re: problemas con su editor de código) Sande por cuatro espacios para hacer un bloque de código, o haga clic en el botón "01010" en el editor mientras tiene algunas cosas resaltadas. –

Respuesta

23

Primero, ya no usamos easy_install. Usamos pip. Por favor, use pip en su lugar.

Para llegar a sus problemas particulares, como lo señalan los comentarios, se está perdiendo GCC. En OS X, Xcode Command Line Tools proporciona GCC, así como muchos otros programas necesarios para desarrollar software en OS X. Para OS X 10.9 (Mavericks) y posterior, instale Xcode a través de App Store o, alternativamente, instale solo el Xcode Herramientas de línea de comandos con

xcode-select --install 

para más detalles, ver el Apple Developer FAQ o buscar en la web "instalar Xcode línea de comandos Herramientas".

Para versiones anteriores de OS X, puede obtener Xcode Command Line Tools desde downloads page of the Apple Developer website (se requiere registro gratuito).

Una vez que tenga instalado GCC, puede encontrar errores durante la compilación si las dependencias de la biblioteca C/C++ no están instaladas en su sistema. En OS X, el proyecto Homebrew es la forma más fácil de instalar y administrar dichas dependencias. Siga las instrucciones en la página web para instalar Homebrew Homebrew en su sistema, a continuación, emitir

brew update 
brew install libxml2 libxslt 

causando posiblemente más problemas en su caso, que colocó los setuptools descargados en /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/. No descargue ningún archivo a esta ubicación. En su lugar, le sugiero que descargue el archivo en su directorio personal o en su directorio habitual Downloads. Después de descargarlo, se supone que debe ejecutar sh setuptools-X.Y.Z.egg, que luego lo instalará correctamente en el site-packages apropiado y colocará el ejecutable easy_install en su ruta.

+0

+1 para señalar que deberíamos usar pip. No tenía ni idea. Es lindo cuando los paquetes solo funcionan. – Muhd

+2

+1 para el gran gráfico – Purrell

+0

El enlace de arriba está roto. Creo que es esto: https://pip.pypa.io/en/latest/ –

2

Parece que lxml quiere construir una extensión que requiere el acceso a un compilador C. Necesitarás gcc para eso. Intenta ejecutar sudo apt-get install build-essential y eso debería solucionar este problema en particular.

+0

sudo apt-get install gcc sudo: apt-get: comando no encontrado – Alex

+1

¿En qué sistema operativo/distribución se encuentra esto? –

+0

OSX 10.5.8, python 2.6 – Alex

13

Asegúrese de que tiene libxml2-dev y libxslt1-dev instalado

apt-get install libxml2-dev 
apt-get install libxslt1-dev 

Luego, su instalación debe construir correctamente.

+0

Gracias por señalar esto – Purrell

+0

Gracias. ¡funcionó! –

10

intento: sudo apt-get install python-lxml

+0

Para Python3 use "apt-get install python3-lxml" – wheleph

+0

Es mejor usar pip. Le dará una versión más reciente que su mantenedor de paquetes. Tarde o temprano te alegrarás de haberlo usado. – mlissner

2

Asegúrese de que todos los paquetes siguientes están instalados en su sistema en primer lugar:

gcc gcc-c++ python-devel libxml2 libxml2-dev libxslt libxslt-dev 

Usted debe ser capaz de instalarlas con alguna variante de: sudo apt-get instalar sudo yum install

Solo después de que todo lo anterior se haya instalado correctamente, debe intentar ejecutar:

sudo pip install lxml 
Cuestiones relacionadas