Estoy compilando lxml en Mac OS X 10.8.1 y Python 2.7.2 y tengo problemas. (He clonado el repositorio de Github y seguí las instrucciones para Mac OS X aquí: http://lxml.de/build.html)¿Qué estoy haciendo mal al instalar lxml en Mac OS X 10.8.1?
Parece que algo se cuelga en la creación de libxml2; el siguiente es el extremo de la cola de la salida del terminal:
configure: creating ./config.status
config.status: creating libxml2.spec
config.status: creating Makefile
config.status: creating include/Makefile
config.status: creating include/libxml/Makefile
config.status: creating doc/Makefile
config.status: creating doc/examples/Makefile
config.status: creating doc/devhelp/Makefile
config.status: creating example/Makefile
config.status: creating python/Makefile
config.status: creating python/tests/Makefile
config.status: creating xstc/Makefile
config.status: creating include/libxml/xmlversion.h
config.status: creating xml2-config
config.status: creating libxml-2.0.pc
config.status: creating libxml-2.0-uninstalled.pc
config.status: creating python/setup.py
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
rm: libtoolT: No such file or directory
Done configuring
make all-recursive
Making all in include
Making all in libxml
make[3]: Nothing to be done for `all'.
make[3]: Nothing to be done for `all-am'.
Making all in .
CC error.lo
[snipped]
CC hash.lo
parser.c: In function 'xmlParseInNodeContext':
parser.c:13492: warning: pointer targets in passing argument 1 of 'xmlFindCharEncodingHandler' differ in signedness
CC list.lo
[snipped]
CC xpointer.lo
xpath.c: In function 'xmlXPathRegisterFuncNS':
xpath.c:4870: warning: ISO C forbids passing argument 4 of 'xmlHashAddEntry2' between function pointer and 'void *'
xpath.c: In function 'xmlXPathFunctionLookupNS':
xpath.c:4951: warning: ISO C forbids assignment between function pointer and 'void *'
xpath.c: In function 'xmlXPathCompOpEval':
xpath.c:13535: warning: ISO C forbids assignment between function pointer and 'void *'
xpath.c:13562: warning: ISO C forbids assignment between function pointer and 'void *'
xpath.c: At top level:
trionan.c:221: warning: 'trio_is_negative' defined but not used
CC xinclude.lo
[snipped]
CC xmlstring.lo
threads.c: In function 'xmlCleanupThreads':
threads.c:918: error: expected expression before '{' token
make[2]: *** [threads.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Traceback (most recent call last):
File "setup.py", line 225, in <module>
**setup_extra_options()
File "setup.py", line 139, in setup_extra_options
STATIC_CFLAGS, STATIC_BINARIES)
File "/Users/jedc/Downloads/lxml/setupinfo.py", line 57, in ext_modules
multicore=OPTION_MULTICORE)
File "/Users/jedc/Downloads/lxml/buildlibxml.py", line 338, in build_libxml2xslt
cmmi(libxml2_configure_cmd, libxml2_dir, multicore, **call_setup)
File "/Users/jedc/Downloads/lxml/buildlibxml.py", line 266, in cmmi
cwd=build_dir, **call_setup)
File "/Users/jedc/Downloads/lxml/buildlibxml.py", line 249, in call_subprocess
raise Exception('Command "%s" returned code %s' % (cmd_desc, returncode))
Exception: Command "make -j5" returned code 512
I' m WAY fuera de mi profundidad tratando de descubrir ¿Qué pasa aquí? ¿Alguien puede indicarme qué debo hacer para solucionar esto?
¡Guau, muchas gracias por la respuesta increíblemente completa! Sé que traté de usar pip al principio, pero no funcionó; Lo intenté ahora y se completó con éxito. (Salida de terminal al final = "Ixml correctamente instalado") Pero cuando entro en python y escribo "import lxml" obtengo "ImportError: ningún módulo llamado lxml". ¿Alguna idea sobre lo que estoy haciendo mal? –
¿Tiene alguna instalación que no sea de Apple Python? Es posible que esté ejecutando versiones de pip y python que no coinciden. Una cosa bastante común es que termina con/usr/local/bin/pip (o/opt/local/bin/pip, etc.) como primer pip en su ruta, e instala módulos para/usr/local/bin/python, pero luego/usr/bin/python como la primera python. – abarnert
Es bastante posible que haya logrado arruinar eso en algún momento. ¿Cómo puedo diagnosticar esto? (¡Soy un verdadero principiante en los comandos/paths/protoclores de UNIX!) –