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
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.
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.
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.
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...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With