Python中在路由器Entware上安装lxml失败怎么办
华硕路由器刷好梅林后安装了 entware 环境
python 3 和 requests 和 beautifulsoup 安装好了
可是 bs 解析要用的 lxml 死活装不上
有人知道如何解决么
Python中在路由器Entware上安装lxml失败怎么办
把代码下载下来自己安装吧
在路由器Entware环境安装lxml失败,通常是因为缺少编译依赖或架构不匹配。Entware的opkg源里通常有预编译的lxml包,直接装那个最省事:
opkg update
opkg install python3-lxml
如果非要自己用pip编译安装,得先装一堆依赖。路由器存储空间小,编译工具链可能也不全。试试这个:
# 1. 确保有编译工具和依赖
opkg install python3-pip python3-dev gcc make libxml2-dev libxslt-dev
# 2. 用pip安装时指定不使用二进制包,强制从源码编译
pip3 install --no-binary lxml lxml
# 3. 如果还不行,试试指定更小的内存使用(路由器内存有限)
CFLAGS="-Os -pipe" pip3 install --no-binary lxml lxml
要是路由器性能太弱编译不动,就在电脑上交叉编译。用docker拉个同架构的环境,编译好whl文件再传到路由器安装:
# 在电脑上操作
docker run --rm -v $(pwd):/data python:3.9-slim bash -c "pip wheel lxml -w /data"
# 把生成的.whl文件传到路由器,然后:
pip3 install lxml-xxx.whl
实在搞不定就换用纯Python的替代库,比如beautifulsoup4加html5lib解析器,虽然慢点但肯定能装上。
总结:优先用Entware的预编译包,不行就交叉编译。
错误贴出来看看
还有可以用 bs 的,html 解析器,css 选择器
加我们的群问效率高些,一群工程师组建的面向初学者的
Python Linux 学习群,qq 群号:278529278,
Php Linux 学习群,qq 群号:476648701,
非商业性质,拒绝广告,只接收真正想学这方面技术的朋友,交流学习,申请请说明来自 v2ex
lxml 太庞大了,路由器上乖乖改用 bs4
请教下 bs4 解析不用 lxml 用什么
Beautifulsoup(html, “html.parser”)
这个 html.parser 和 html5lib 哪个效率好?
我代码用的就是 bs4 呀

