首页 > 虚拟主机使用pip安装包时,系统内存不足的解决办法?

虚拟主机使用pip安装包时,系统内存不足的解决办法?

在BandwagonHost的虚拟主机上,使用pip3安装lxml时,遇到了如下问题:

pip3 install lxml
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting lxml
  Using cached lxml-3.5.0.tar.gz
    Building lxml version 3.5.0.
    Building without Cython.
    Using build configuration of libxslt 1.1.26
    Building against libxml2/libxslt in the following directory: /usr/lib64
Installing collected packages: lxml
  Running setup.py install for lxml
    Building lxml version 3.5.0.
    Building without Cython.
    Using build configuration of libxslt 1.1.26
    Building against libxml2/libxslt in the following directory: /usr/lib64
    building 'lxml.etree' extension
    gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/local/include/python3.4m -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.4/src/lxml/lxml.etree.o -w
    gcc: Internal error: Killed (program cc1)
    Please submit a full bug report.
    See <http://bugzilla.redhat.com/bugzilla> for instructions.
    Compile failed: command 'gcc' failed with exit status 1
    cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInit65g3ilad.c -o tmp/xmlXPathInit65g3ilad.o
    cc tmp/xmlXPathInit65g3ilad.o -L/usr/lib64 -lxml2 -o a.out
    error: command 'gcc' failed with exit status 1
    Complete output from command /usr/local/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-bj749p4e/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_6ys7mq9-record/install-record.txt --single-version-externally-managed --compile:
    Building lxml version 3.5.0.

    Building without Cython.

    Using build configuration of libxslt 1.1.26

    Building against libxml2/libxslt in the following directory: /usr/lib64

    running install

    running build

    running build_py

    creating build

    creating build/lib.linux-x86_64-3.4

    creating build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/sax.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/builder.py -> build/lib.linux-x86_64-3.4/lxml

    creating build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.4/lxml/includes

    creating build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.4/lxml/html

    copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.4/lxml/html

    creating build/lib.linux-x86_64-3.4/lxml/isoschematron

    copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.4/lxml/isoschematron

    copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.4/lxml

    copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.4/lxml/includes

    copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.4/lxml/includes

    creating build/lib.linux-x86_64-3.4/lxml/isoschematron/resources

    creating build/lib.linux-x86_64-3.4/lxml/isoschematron/resources/rng

    copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.4/lxml/isoschematron/resources/rng

    creating build/lib.linux-x86_64-3.4/lxml/isoschematron/resources/xsl

    copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.4/lxml/isoschematron/resources/xsl

    copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.4/lxml/isoschematron/resources/xsl

    creating build/lib.linux-x86_64-3.4/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-3.4/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-3.4/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-3.4/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-3.4/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-3.4/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.4/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

    running build_ext

    building 'lxml.etree' extension

    creating build/temp.linux-x86_64-3.4

    creating build/temp.linux-x86_64-3.4/src

    creating build/temp.linux-x86_64-3.4/src/lxml

    gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/local/include/python3.4m -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.4/src/lxml/lxml.etree.o -w

    gcc: Internal error: Killed (program cc1)

    Please submit a full bug report.

    See <http://bugzilla.redhat.com/bugzilla> for instructions.

    Compile failed: command 'gcc' failed with exit status 1

    creating tmp

    cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInit65g3ilad.c -o tmp/xmlXPathInit65g3ilad.o

    cc tmp/xmlXPathInit65g3ilad.o -L/usr/lib64 -lxml2 -o a.out

    error: command 'gcc' failed with exit status 1

    ----------------------------------------
    Command "/usr/local/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-bj749p4e/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install 

--record /tmp/pip-_6ys7mq9-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-bj749p4e/lxml

通过google和错误日志得知,这是因为gcc在编译时由于内存不足,故被系统kill掉而导致的。此外由于Bandwagon Host采用的是OpenVZ,故无法手动增加swap。那么,在不更换主机的情况下,如何解决编译失败这个问题?
或者,假设本地有一台安装了和虚拟主机相同版本的centOS的电脑,那么能不能把在本地编译完成的文件上传到主机上使用?如果可以,那么需要对路径之类的配置文件做哪些改动?


假设本地有一台安装了和虚拟主机相同版本的 centOS 的电脑,下载 lxml 并解压,在解压目录下运行:

python setup.py bdist_wheel --static-deps

得到一个 whl 文件,上传后 pip install xxx.whl 即可。

参考:http://lxml.de/build.html#building-an-egg-or-wheel


去搜索你要安装的包是否有二进制版本

【热门文章】
【热门文章】