10

I tried:

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

and I got:

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 did not work either.

I got the package like this:

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

Then I tried without cython because sudo python setup.py install gave me 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

Then I got:

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
[ec2-user@ip-172-31-14-83 lxml]$ 

It really wants me to make sure the development packages of libxml2 and libxslt are installed.

If I can do that I hope it will work. Any ideas? Thanks! It seems people have related issues to this, but most are on other systems.


UPDATE: Based on Vor's suggestion I used the -devel extension and that worked to install the dependencies.

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

Unfortunately I get this:

$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
user391339
  • 8,355
  • 13
  • 58
  • 71
  • 1
    if you vote to close due to the question being unrelated to programming, that's fine, but feel free to answer it so i can program. also, isn't compilation and package management related to programming? – user391339 Sep 12 '14 at 09:41

8 Answers8

12

I had the same problem. After this line:

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

I tried again with

sudo yum install lxml

And it worked :)

huapito
  • 395
  • 2
  • 10
  • You rock, thanks! For the AWS ami, I needed to use `sudo /usr/local/bin/easy_install lxml` for the second command. – dstudeba Jan 16 '16 at 02:03
  • 2
    `pip install lxml` works fine for me (after running the first command set), but it takes almost 10 minutes to install through pip. Initially I kept pressing `Ctrl+C` because I thought the process had frozen up but eventually it installed! – capcom Mar 13 '17 at 02:08
  • this worked for me, however: 1) without the 2nd yum install (i used pip) and 2) via the .ebextension: http://stackoverflow.com/questions/32945077/lxml-not-getting-installed-on-aws-elasticbeanstalk-instance – Ian May 19 '17 at 16:05
4

The problem on EC2 t.micro is that you run out of memory to compile the lxml package.

When you run: dmesg | tail you will see the issue

[167588.470868] Out of memory: Kill process 9804 (cc1) score 499 or sacrifice child [167588.475046] Killed process 9804 (cc1) total-vm:693864kB, anon-rss:521696kB, file-rss:0kB

The only way is to install the python-lxml package via yum or other package manager.

  • 1
    This was my problem right there. I changed my instance type to t2.large and the issue was fixed. Thank you! – Jimit Raithatha Jul 09 '18 at 01:44
  • 1
    Oh my god. This saved my day. The server was just hanging and I had no idea why. I wasn't able to get any logs or ssh into the server. Thank you! – James Parker Jul 30 '18 at 20:12
3
sudo yum install libxml2-devel libxslt-devel python-devel

add

sudo yum install gcc

and this worked for me.

modelbuilder42
  • 319
  • 4
  • 5
2

Add on to huapito's answer. Following code work for me. sudo yum install gcc libxml2-devel libxslt-devel python-devel sudo pip install lxml

Qinjie
  • 1,786
  • 2
  • 19
  • 32
1

On CentOS it is python-devel, not python-dev. Same thing with others.

Vor
  • 33,215
  • 43
  • 135
  • 193
  • Thank you - that worked for installing those dependencies. It still did not solve the problem, but getting closer. I will update hold on... – user391339 Sep 12 '14 at 18:40
1

The following worked for me:

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

On AWS EC2 instance:

Amazon Linux AMI release 2015.09

Thomas Bratt
  • 48,038
  • 36
  • 121
  • 139
0

Broken build left intermediate files in the process. try rm -rf /tmp/pip-build-root

notmyitblog
  • 99
  • 1
  • 1
0

On my AWS machine I had both python2.7 and python3.4 and I was looking to install lxml for python3.4 - I found that I had to use

sudo yum install python34-devel
SDRay
  • 61
  • 1
  • 3