Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

lxml will never finish building on ubuntu

Tags:

I am running ubuntu 14.04 LTS and python 2.7.5 on a vwmare.

When I run:

sudo pip install lxml 

I get:

Collecting lxml   Using cached lxml-3.4.4.tar.gz Building wheels for collected packages: lxml   Running setup.py bdist_wheel for lxml 

which runs eternally.

I can't find any resources related to this, nor do I have any experience with similar errors.

Note, the solution below does not work:

sudo apt-get build-dep -y lxml; pip install lxml 

I have also tried:

sudo apt-get install -y build-essential python-dev Reading package lists... Done Building dependency tree        Reading state information... Done build-essential is already the newest version. python-dev is already the newest version. The following packages were automatically installed and are no longer required:   linux-headers-3.13.0-32 linux-headers-3.13.0-32-generic   linux-headers-3.13.0-57 linux-headers-3.13.0-57-generic   linux-image-3.13.0-32-generic linux-image-3.13.0-57-generic   linux-image-extra-3.13.0-32-generic linux-image-extra-3.13.0-57-generic Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 75 not upgraded. 

EDIT:

I just ran it again and got:

sudo pip install lxml  Collecting lxml /usr/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.   InsecurePlatformWarning   Using cached lxml-3.4.4.tar.gz Building wheels for collected packages: lxml   Running setup.py bdist_wheel for lxml 

EDIT 2:

 pip install lxml  The directory '/home/myusername/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/myusername/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting lxml /usr/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.   InsecurePlatformWarning   Downloading lxml-3.4.4.tar.gz (3.5MB)     100% |████████████████████████████████| 3.5MB 7.0kB/s  Installing collected packages: lxml   Running setup.py install for lxml 

EDIT 3: After waiting a long time the command gave:

pip install lxml The directory '/home/mstaffel/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/mstaffel/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting lxml /usr/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.   InsecurePlatformWarning   Downloading lxml-3.4.4.tar.gz (3.5MB)     100% |████████████████████████████████| 3.5MB 7.0kB/s  Installing collected packages: lxml   Running setup.py install for lxml     Complete output from command /usr/local/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-u3iJ67/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0tAWPp-record/install-record.txt --single-version-externally-managed --compile:     /usr/local/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'       warnings.warn(msg)     Building lxml version 3.4.4.     Building without Cython.     Using build configuration of libxslt 1.1.28     running install     running build     running build_py     creating build     creating build/lib.linux-i686-2.7     creating build/lib.linux-i686-2.7/lxml     copying src/lxml/pyclasslookup.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/cssselect.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/__init__.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/_elementpath.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/doctestcompare.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/builder.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/ElementInclude.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/usedoctest.py -> build/lib.linux-i686-2.7/lxml     copying src/lxml/sax.py -> build/lib.linux-i686-2.7/lxml     creating build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/__init__.py -> build/lib.linux-i686-2.7/lxml/includes     creating build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/__init__.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/_diffcommand.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/soupparser.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/builder.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/usedoctest.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/html5parser.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/_setmixin.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/_html5builder.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/defs.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/clean.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/ElementSoup.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/diff.py -> build/lib.linux-i686-2.7/lxml/html     copying src/lxml/html/formfill.py -> build/lib.linux-i686-2.7/lxml/html     creating build/lib.linux-i686-2.7/lxml/isoschematron     copying src/lxml/isoschematron/__init__.py -> build/lib.linux-i686-2.7/lxml/isoschematron     copying src/lxml/lxml.etree.h -> build/lib.linux-i686-2.7/lxml     copying src/lxml/lxml.etree_api.h -> build/lib.linux-i686-2.7/lxml     copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/tree.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/schematron.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/xinclude.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/c14n.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/xpath.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/xslt.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/uri.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/relaxng.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/config.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/etree_defs.h -> build/lib.linux-i686-2.7/lxml/includes     copying src/lxml/includes/lxml-version.h -> build/lib.linux-i686-2.7/lxml/includes     creating build/lib.linux-i686-2.7/lxml/isoschematron/resources     creating build/lib.linux-i686-2.7/lxml/isoschematron/resources/rng     copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/rng     creating build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl     copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl     copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl     creating build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1     copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1     copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1     copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1     copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1     copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1     copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1     running build_ext     building 'lxml.etree' extension     creating build/temp.linux-i686-2.7     creating build/temp.linux-i686-2.7/src     creating build/temp.linux-i686-2.7/src/lxml     gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -I/tmp/pip-build-u3iJ67/lxml/src/lxml/includes -I/usr/local/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.7/src/lxml/lxml.etree.o -w     gcc -pthread -shared build/temp.linux-i686-2.7/src/lxml/lxml.etree.o -lxslt -lexslt -lxml2 -lz -lm -o build/lib.linux-i686-2.7/lxml/etree.so     building 'lxml.objectify' extension     gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -I/tmp/pip-build-u3iJ67/lxml/src/lxml/includes -I/usr/local/include/python2.7 -c src/lxml/lxml.objectify.c -o build/temp.linux-i686-2.7/src/lxml/lxml.objectify.o -w     gcc -pthread -shared build/temp.linux-i686-2.7/src/lxml/lxml.objectify.o -lxslt -lexslt -lxml2 -lz -lm -o build/lib.linux-i686-2.7/lxml/objectify.so     running install_lib     creating /usr/local/lib/python2.7/site-packages/lxml     error: could not create '/usr/local/lib/python2.7/site-packages/lxml': Permission denied      ---------------------------------------- Command "/usr/local/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-u3iJ67/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0tAWPp-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-u3iJ67/lxml 
like image 253
Rorschach Avatar asked Oct 11 '15 11:10

Rorschach


People also ask

What is lxml2?

Introduction. The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt. It is unique in that it combines the speed and XML feature completeness of these libraries with the simplicity of a native Python API, mostly compatible but superior to the well-known ElementTree API.

How do I get lxml version?

In case you want to use the current in-development version of lxml, you can get it from the github repository at https://github.com/lxml/lxml . Note that this requires Cython to build the sources, see the build instructions on the project home page.

How do I import lxml into Python?

Open your Linux terminal or shell. Type “ pip install lxml ” (without quotes), hit Enter. If it doesn't work, try "pip3 install lxml" or “ python -m pip install lxml “. Wait for the installation to terminate successfully.


1 Answers

Note that if you run top in a separate terminal you'll notice that your system is busy building the lxml package:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1645 root 20 0 322224 305740 5384 R 100.0 29.8 3:27.47 /usr/lib/gcc/arm-linux-gnueabihf/5/cc1 -quiet -I /usr/include/libxml2 -I src/lxml/includes -I /usr/include/python2.7 -imultiarch arm-linux-gnueabihf -D_REENTRANT -D ...

If you're building on a VM or SBC with limited resources this can take a while...

like image 101
amorphic Avatar answered Oct 14 '22 23:10

amorphic