2014-09-12 13 views
5

Próbowałem:Jak mogę zainstalować zależności lxml na linuksie Amazon EC2?

sudo yum install libxml2-dev libxslt-dev python-dev 

i mam:

Loaded plugins: priorities, update-motd, upgrade-helper 
amzn-main/latest           | 2.1 kB  00:00  
amzn-updates/latest          | 2.3 kB  00:00  
No package libxml2-dev available. 
No package libxslt-dev available. 
No package python-dev available. 

pip nie działało.

Dostałem paczkę takiego:

git clone --branch lxml-3.2.4 https://github.com/lxml/lxml 

Potem próbowałem bez Cython ponieważ sudo python setup.py install dał mi RuntimeError: ERROR: Trying to build without Cython, but pre-generated 'src/lxml/lxml.etree.c' is not available

sudo python setup.py install --without-cython 

Potem dostałem:

sudo python setup.py install --without-cython 
Building lxml version 3.2.4. 
WARNING: Trying to build without Cython, but pre-generated 'src/lxml/lxml.etree.c' is not available. 
WARNING: Trying to build without Cython, but pre-generated 'src/lxml/lxml.objectify.c' is not available. 
Building without Cython. 
ERROR: /bin/sh: xslt-config: command not found 

** make sure the development packages of libxml2 and libxslt are installed ** 

Using build configuration of libxslt 
/usr/lib64/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'bugtrack_url' 
    warnings.warn(msg) 
running install 
running bdist_egg 
running egg_info 
writing src/lxml.egg-info/PKG-INFO 
writing top-level names to src/lxml.egg-info/top_level.txt 
writing dependency_links to src/lxml.egg-info/dependency_links.txt 
reading manifest file 'src/lxml.egg-info/SOURCES.txt' 
reading manifest template 'MANIFEST.in' 
warning: no files found matching 'lxml.etree.c' under directory 'src/lxml' 
warning: no files found matching 'lxml.objectify.c' under directory 'src/lxml' 
warning: no files found matching 'lxml.etree.h' under directory 'src/lxml' 
warning: no files found matching 'lxml.etree_api.h' under directory 'src/lxml' 
warning: no files found matching '*.txt' under directory 'src/lxml/tests' 
warning: no files found matching '*.html' under directory 'doc' 
writing manifest file 'src/lxml.egg-info/SOURCES.txt' 
installing library code to build/bdist.linux-x86_64/egg 
running install_lib 
running build_py 
copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-2.6/lxml/includes 
running build_ext 
building 'lxml.etree' extension 
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/home/ec2-user/lxml/src/lxml/includes -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.6/src/lxml/lxml.etree.o 
gcc: error: src/lxml/lxml.etree.c: No such file or directory 
gcc: fatal error: no input files 
compilation terminated. 
error: command 'gcc' failed with exit status 4 
[[email protected] lxml]$ 

To naprawdę mnie chce do upewnij się, że pakiet rozwojowy wiek libxml2 i libxslt są instalowane.

Jeśli mogę to zrobić, mam nadzieję, że zadziała. Jakieś pomysły? Dzięki! Wygląda na to, że ludzie mają do tego podobne problemy, ale większość z nich dotyczy innych systemów.


UPDATE: podstawie sugestii vor za użyłem rozszerzenie -devel i że pracował zainstalować zależności.

sudo yum install libxml2-devel libxslt-devel python-devel 

Niestety otrzymuję to:

$sudo python setup.py install --without-cython 


Building lxml version 3.4.0. 
WARNING: Trying to build without Cython, but pre-generated 'src/lxml/lxml.etree.c' is not available. 
WARNING: Trying to build without Cython, but pre-generated 'src/lxml/lxml.objectify.c' is not available. 
Building without Cython. 
Using build configuration of libxslt 1.1.28 
Building against libxml2/libxslt in the following directory: /usr/lib64 
/usr/lib64/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'bugtrack_url' 
    warnings.warn(msg) 
running install 
running bdist_egg 
running egg_info 
writing requirements to src/lxml.egg-info/requires.txt 
writing src/lxml.egg-info/PKG-INFO 
writing top-level names to src/lxml.egg-info/top_level.txt 
writing dependency_links to src/lxml.egg-info/dependency_links.txt 
reading manifest file 'src/lxml.egg-info/SOURCES.txt' 
reading manifest template 'MANIFEST.in' 
warning: no files found matching 'lxml.etree.c' under directory 'src/lxml' 
warning: no files found matching 'lxml.objectify.c' under directory 'src/lxml' 
warning: no files found matching 'lxml.etree.h' under directory 'src/lxml' 
warning: no files found matching 'lxml.etree_api.h' under directory 'src/lxml' 
warning: no files found matching '*.html' under directory 'doc' 
writing manifest file 'src/lxml.egg-info/SOURCES.txt' 
installing library code to build/bdist.linux-x86_64/egg 
running install_lib 
running build_py 
copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-2.6/lxml/includes 
running build_ext 
building 'lxml.etree' extension 
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/libxml2 -I/home/ec2-user/lxml/src/lxml/includes -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.6/src/lxml/lxml.etree.o -w 
gcc: error: src/lxml/lxml.etree.c: No such file or directory 
gcc: fatal error: no input files 
compilation terminated. 
error: command 'gcc' failed with exit status 4 
+0

jeśli zagłosujesz na zakończenie, ponieważ pytanie nie jest związane z programowaniem, nie ma problemu, ale możesz na nie odpowiedzieć, abym mógł go zaprogramować. także, czy kompilacja i zarządzanie pakietami nie są związane z programowaniem? – user391339

Odpowiedz

1

Na CentOS jest python-devel nie python-dev. To samo z innymi.

+0

Dziękuję - to działało w celu zainstalowania tych zależności. Nadal nie rozwiązał problemu, ale zbliżył się. Zaktualizuję, przytrzymaj ... – user391339

0

Uszkodzona kompilacja pozostawiła po sobie pliki pośrednie. spróbuj rm -rf/tmp/pip-build-root

8

Miałem ten sam problem. Po tej linii:

sudo yum install libxml2-devel libxslt-devel python-devel 

I ponownie próbował z

sudo yum install lxml 

i to zadziałało :)

+0

Skałasz, dzięki! Dla AWS ami, musiałem użyć 'sudo/usr/local/bin/easy_install lxml' dla drugiego polecenia. – dstudeba

+0

Dzięki! To działa dla mnie. –

+2

'pip install lxml' działa dobrze dla mnie (po uruchomieniu pierwszego zestawu poleceń), ale trwa to prawie 10 minut, aby zainstalować za pośrednictwem pip. Początkowo naciskałem 'Ctrl + C', ponieważ myślałem, że proces się zawiesił, ale ostatecznie został zainstalowany! – capcom

0

Następujące pracował dla mnie:

sudo yum install libxml2-devel libxslt-devel python-devel

Na przykład AWS EC2 :

Amazon Linux AMI release 2015.09

0

Na moim komputerze AWS miałem zarówno python2.7 i python3.4 i szukałem zainstalować lxml dla python3.4 - Okazało się, że musiałem użyć

sudo yum install python34-devel 
0

problemu na EC2 t.micro oznacza, że ​​zabrakło pamięci do kompilacji pakietu lxml.

Po uruchomieniu: dmesg | ogon widać problem

[167588,470868] Z pamięci: zabić proces 9804 (CC1) Wynik 499 lub poświęcenia dziecko [167588,475046] Zabity proces 9804 (CC1) Całkowita-vm: 693864kB, Anon-RS: 521696kB, file-rss: 0kB

Jedynym sposobem jest zainstalowanie pakietu python-lxml za pośrednictwem mniam lub innego menedżera pakietów.

2
sudo yum install libxml2-devel libxslt-devel python-devel 

dodać

sudo yum install gcc 

i ten pracował dla mnie.

0

Dodaj do odpowiedzi huapito. Poniższy kod działa dla mnie. sudo yum install gcc libxml2-devel libxslt-devel python-devel sudo pip install lxml