lxml安装错误ubuntu 14.04(内部编译错误)

我在安装lxml时遇到问题。 我已经尝试过在这个网站和其他网站的相关问题的解决scheme,但不能解决问题。 需要一些build议/解决这个问题。

我在执行pip install lxml后提供完整的日志,

 Downloading/unpacking lxml Downloading lxml-3.3.5.tar.gz (3.5MB): 3.5MB downloaded Running setup.py (path:/tmp/pip_build_root/lxml/setup.py) egg_info for package lxml /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url' warnings.warn(msg) Building lxml version 3.3.5. Building without Cython. Using build configuration of libxslt 1.1.28 warning: no previously-included files found matching '*.py' Installing collected packages: lxml Running setup.py install for lxml /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url' warnings.warn(msg) Building lxml version 3.3.5. Building without Cython. Using build configuration of libxslt 1.1.28 building 'lxml.etree' extension x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -I/tmp/pip_build_root/lxml/src/lxml/includes -I/usr/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -w x86_64-linux-gnu-gcc: internal compiler error: Killed (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions. error: command 'x86_64-linux-gnu-gcc' failed with exit status 4 Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-KUq9VD-record/install-record.txt --single-version-externally-managed --compile: /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url' warnings.warn(msg) Building lxml version 3.3.5. Building without Cython. Using build configuration of libxslt 1.1.28 running install running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/lxml copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/builder.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/cssselect.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/sax.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/__init__.py -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-2.7/lxml creating build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-2.7/lxml/includes creating build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/builder.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/clean.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/diff.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/defs.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-2.7/lxml/html copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-2.7/lxml/html creating build/lib.linux-x86_64-2.7/lxml/isoschematron copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-2.7/lxml/isoschematron copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-2.7/lxml copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-2.7/lxml/includes copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-2.7/lxml/includes creating build/lib.linux-x86_64-2.7/lxml/isoschematron/resources creating build/lib.linux-x86_64-2.7/lxml/isoschematron/resources/rng copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-2.7/lxml/isoschematron/resources/rng creating build/lib.linux-x86_64-2.7/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-2.7/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-2.7/lxml/isoschematron/resources/xsl creating build/lib.linux-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 running build_ext building 'lxml.etree' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/src creating build/temp.linux-x86_64-2.7/src/lxml x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -I/tmp/pip_build_root/lxml/src/lxml/includes -I/usr/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -w x86_64-linux-gnu-gcc: internal compiler error: Killed (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions. error: command 'x86_64-linux-gnu-gcc' failed with exit status 4 ---------------------------------------- Cleaning up... Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-KUq9VD-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/lxml Storing debug log for failure in /root/.pip/pip.log 

另外, pip.log文件看起来像这样,

 status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run requirement_set.install(install_options, global_options, root=options.root_path) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1435, in install requirement.install(install_options, global_options, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 706, in install cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False) File "/usr/lib/python2.7/dist-packages/pip/util.py", line 697, in call_subprocess % (command_desc, proc.returncode, cwd)) InstallationError: Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-KUq9VD-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/lxml 

dmesg | tail dmesg | tail命令显示这样的输出,

 [1744367.676147] Out of memory: Kill process 25518 (cc1) score 388 or sacrifice child [1744367.676665] Killed process 25518 (cc1) total-vm:242352kB, anon-rss:200608kB, file-rss:0kB 

这似乎是一个记忆问题。 我正在参考这个问题

在这种情况下,它与依赖关系无关,这是一个内存问题。

我在virtualbox虚拟机中遇到了这个问题。 我的解决scheme是将分配给虚拟机的内存从默认的512Mb增加到1024Mb。

可能的解决scheme(如果您没有能力增加该机器上的内存)是添加交换文件。

 sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile 

来自https://github.com/pydata/pandas/issues/1880#issuecomment-9920484

这在我最小的数字海洋机器上工作

请参阅https://stackoverflow.com/a/6504860/261718

pip安装lxml之前安装一些开发包

 apt-get install libxml2-dev libxslt1-dev python-dev 

使用digitalocean最小的机器,你可以在编译时closuresmysql和apache

 sudo service apache2 stop sudo service mysql stop 

并在安装lxml后,使用这个命令再次打开它们'开始'而不是'停止'。 在没有使用交换文件的情况下工作得很好

如果@Drake答案不适用于您尝试添加lib1g-dev

$ sudo apt-get install -y libxml2-dev libxslt1-dev zlib1g-dev