无法通过pip安装lxml

时间:2016-06-06 20:59:14

标签: python raspberry-pi lxml

我想通过pip安装lxml,但它只是停止,没有任何错误或某事。当我执行

pip install lxml -vvv

我知道,它停在了一行:

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-armv6l-2.7/src/lxml/lxml.etree.o -w

我可以离开控制台一个小时。没有发生。没有错误消息。没有。

P.S。:是的,

libxml2-dev libxslt-dev python-dev

都已安装。

2 个答案:

答案 0 :(得分:1)

对于所有发现同一问题的人来说:Raspberry Pi上的编译过程非常慢。它只是没有足够的力量。只是不要这样做,这没什么好玩的。

答案 1 :(得分:0)

为什么这不起作用很简单。编译 Python 的 lxml 包只需要比你为其分配的内存多一点。 100MB 的默认交换空间加上 512MB RAM 意味着 gcc 和 kswapd 字面上相互对抗。它可能会留在 lxml.etree.c 直到几天结束。

如何进行:

首先我们确定什么消耗了大量内存

ps aux | head -1; ps aux | sort -rnk 4 | head -5

并暂时终止相应的恶魔和进程。 之后,我们将交换文件扩展到 2GB。

sudo dphys-swapfile swapoff

关闭交换。 然后编辑/etc/dphys-swapfile并修改变量CONF_SWAPSIZE

CONF_SWAPSIZE = 2048

运行

dphys-swapfile setup

这将创建和初始化文件。

sudo dphys-swapfile swapon

再次打开交换。


我需要这个用于 Home Assistant,因为它需要 Python 3.8 而这不在包提要中。

在我的树莓派零上

pip3 install lxml

花了大约。 70 分钟。