如何修复lxml中移除的cssselect包问题?

10 投票
2 回答
12229 浏览
提问于 2025-04-18 03:45

他们把 lxml 里的 cssselect 包给删掉了……现在我的 Python 程序没法用了。我就是搞不明白怎么才能让它继续工作:

导入错误:cssselect 似乎没有安装。请查看 http://packages.python.org/cssselect/

我试着把 cssselect 目录复制到我的代码目录里——这样在编译字节码文件的时候错误解决了,但运行程序时,错误还是存在。

我试着重写我的 lxml.cssselect 命令,但没有效果。

我在网上搜索了很久,但还是没有找到答案。

现在我只有这一行:

from lxml.html import parse

而使用 cssselect 的代码是:

inner = html.xpath('//*[@id="Content..."]')
for b in inner:
...
  for a in b.cssselect('p'):
  ...

那么,要么我该怎么导入它才能让原来的代码正常工作?我需要手动把它复制到某个地方吗?

要么我该怎么找到/替换代码才能让它运行?

(哦,还有一点,我当然已经安装了 lxml 和 cssselect 包)

2 个回答

5

我的解决办法是用pip3来安装cssselect这个库:

sudo pip3 install cssselect
14

问题出在cssselect的安装上。由于某种未知的原因,cssselect这个包被安装到了/root/.local/lib/python2.7/site-packages/这个位置,而不是/usr/local/lib/python2.7/dist-packages/。

在Debian GNU/Linux 7.4(wheezy,Linux 3.2.0-4-amd64 x86_64)上使用 pip install cssselect 安装了Cssselect。我也不确定是不是我自己打错了,还是系统的bug。

解决办法是先卸载cssselect,然后再重新安装。这次它安装到了正确的位置,一切又恢复正常了。根本不需要修改任何python代码。

谢谢你的回答;)

撰写回答