python - library - No se puede instalar Lxml en Mac OS x 10.9
scrapy python library (22)
Con homebrew, libxml2 está oculto para no interferir con el sistema libxml2, por lo que se debe ayudar un poco a pip para poder encontrarlo.
Con bash:
LDFLAGS=-L`brew --prefix libxml2`/lib CPPFLAGS=-I`brew --prefix libxml2`/include/libxml2 pip install --user lxml
Con pescado:
env LDFLAGS=-L(brew --prefix libxml2)/lib CPPFLAGS=-I(brew --prefix libxml2)/include/libxml2 pip install --user lxml
Quiero instalar Lxml para poder instalar Scrapy.
Cuando actualicé mi Mac hoy, no me permitía volver a instalar lxml, aparece el siguiente error:
In file included from src/lxml/lxml.etree.c:314:
/private/tmp/pip_build_root/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: ''libxml/xmlversion.h'' file not found
#include "libxml/xmlversion.h"
^
1 error generated.
error: command ''cc'' failed with exit status 1
He intentado usar brew para instalar libxml2 y libxslt, ambos bien instalados pero todavía no puedo instalar lxml.
La última vez que estuve instalando necesitaba habilitar las herramientas de desarrollador en Xcode pero desde su actualización a Xcode 5 ya no me da esa opción.
¿Alguien sabe lo que necesito hacer?
Debe instalar o actualizar la herramienta de línea de comandos para xcode. Intenta esto en una terminal:
xcode-select --install
Desafortunadamente, xcode-select --install
no me funcionó porque ya tenía la última versión.
Es muy extraño, pero resolví el problema abriendo XCode y aceptando los Términos y condiciones. La ejecución de pip install lxml
no devolvió ningún error después.
Después de la instalación exitosa desde pip (lxml 3.6.4), estaba obteniendo un error al importar el módulo lxml.etree.
Estuve buscando interminablemente para instalar esto como un requisito para scrapy, e intenté todas las opciones, pero finalmente esto funcionó para mí (mac osx 10.11 python 2.7):
$ STATIC_DEPS=true sudo easy_install-2.7 "lxml==2.3.5"
La versión anterior de lxml parece funcionar con el módulo etree.
Pip a menudo puede ignorar la versión especificada de un paquete, por ejemplo, cuando tiene la versión más reciente en el caché de pip, por lo tanto, la instalación easy_install
. La opción ''-2.7''
es para la versión de python, omita esto si está instalando para python 3.x.
En mi caso, debo cerrar Kaspersky Antivirus antes de instalar lxml mediante:
pip install lxml
Esta publicación enlaza con una solución que funcionó para mí Python3, lxml y "Symbol not found: _lzma_auto_decoder" en Mac OS X 10.9
hth
Esto me ha estado molestando también por un tiempo. No conozco lo suficiente sobre los distutils de Python, etc., pero el camino de inclusión aquí es incorrecto. Hice el siguiente truco feo para detenerme hasta que la gente de Python lxml pueda hacer la corrección adecuada.
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2/libxml/ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml
Estoy usando OSX 10.9.2 y me sale el mismo error.
La instalación de las herramientas de línea de comandos de XCode no ayuda para esta versión particular de OSX.
Creo que un mejor enfoque para solucionar este problema es instalar con el siguiente comando:
$ CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 pip install lxml
Esto es similar a la corrección de jdkoftinoff, pero no altera su sistema de forma permanente.
Instalando globalmente ... OS X 10.9.2
xcode-select --install
sudo easy_install pip
sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml
Intenté todas las respuestas en esta página, ninguna de ellas funcionó para mí. Estoy ejecutando OS X versión 10.9.2
Pero esto definitivamente funciona ... como un encanto:
ARCHFLAGS = -Wno-error = no utilizado-comando-línea-argumento-duro-error-en-futuro pip instalar lxml
Las instrucciones de instalación en http://lxml.de/installation.html explican:
Para acelerar la compilación en entornos de prueba, por ejemplo, en un servidor de integración continua, deshabilite las optimizaciones del compilador de C configurando la variable de entorno CFLAGS:
CFLAGS="-O0" pip install lxml
Me encontré con la misma pregunta y después de días de trabajo resolví este problema en mi OS X 10.9.4, con Python 3.4.1.
Aquí está mi solución,
De acuerdo con la docs desde lxml.de,
Un macport de lxml está disponible. Intente algo como el puerto de instalación py25-lxml
Si no tiene MacPort, instálelo desde MacPort.org . Es bastante facil También puede necesitar un compilador, para instalar las herramientas de compilación XCode, use xcode-select --install
En primer lugar, actualicé mi puerto a la última versión a través de sudo port selfupdate
,
Luego simplemente sudo port install libxml2
y varios minutos después debería ver que libxml2 se instaló correctamente. Es probable que también necesite libxslt
para instalar lxml. Para instalar libxslt, use: sudo port install libxslt
.
Ahora, simplemente escriba pip install lxml
, debería funcionar bien.
Ninguno de los anteriores funcionó para mí en 10.9.2, ya que la compilación se rescata con el siguiente error:
clang: error: unknown argument: ''-mno-fused-madd''
Lo que realmente lleva a la solución más limpia (ver más detalles en [1]):
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
pip install lxml
o siguiendo si instala globalmente
sudo pip install lxml
[1] error de clang: argumento desconocido: ''-mno-fused-madd'' (falla de instalación del paquete python)
OSX 10.9.2
sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future STATIC_DEPS=true pip install lxml
Probé la mayoría de las soluciones anteriores, pero ninguna funcionó para mí. Estoy ejecutando Yosemite 10.10, la única solución que funcionó para mí fue escribir esto en el terminal:
sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml
EDITAR: Si está usando virtualenv, el sudo al principio no es necesario.
Puede resolver su problema ejecutando esto en la línea de comandos:
STATIC_DEPS=true pip install lxml
Seguro que me ayudó. Explicaciones en docs
Resolví este problema en Yosemite
ejecutando los siguientes comandos:
xcode-select install #this may take several minutes.
pip install lxml
Tratar:
% STATIC_DEPS=true pip install lxml
O:
% STATIC_DEPS=true sudo pip install lxml
¡Funciona!
antes de compilar, agregue la ruta a xmlversion.h en su entorno.
$ set INCLUDE=$INCLUDE:/private/tmp/pip_build_root/lxml/src/lxml/
Pero asegúrese de que la ruta que he proporcionado tenga el archivo xmlversion.h ubicado dentro. Entonces,
$ python setup.py install
libxml2
este problema en Yosemite instalando y enlazando libxml2
y libxslt
través de brew:
brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force
Si resolvió el problema con este método pero vuelve a aparecer en un momento posterior, es posible que deba ejecutar esto antes de las cuatro líneas anteriores:
brew unlink libxml2
brew unlink libxslt
Si tiene errores de permiso con Homebrew, especialmente en El Capitán, este es un documento útil . En esencia, independientemente de la versión de OS X, intente ejecutar:
sudo chown -R $(whoami):admin /usr/local
pip
no funcionó para mí. Fui a https://pypi.python.org/pypi/lxml/2.3 y descargué el archivo .egg de macosx:
Luego usó la línea de comandos easy_install
para instalar el archivo .egg
.
xcode-select --install
sudo easy_install pip
sudo pip install lxml