我想通过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
都已安装。
答案 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 分钟。