安装了Anaconda和Python,但缺少解析器库(lxml)。

3

我已经通过pip安装了Anaconda和requests、bs4、lxml、selenium模块。

当我执行以下操作时:

from bs4 import BeautifulSoup
soup = BeautifulSoup(txt, 'lxml')

我遇到了这个错误:

bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. 

Do you need to install a parser library?

我在这方面找到了许多问题,以下是我尝试过的方法(但都没有成功):
  1. 卸载/重新安装lxml
  2. 下载lxml的whl文件并手动加载(当我这样做时,它说lxml已经满足要求)
  3. conda install -x auto htmlparser (我得到了错误 - packagesnotfounderror: the following packages are not available from current channels
  4. 我已检查过我的bs4和lxml是否完全升级
请注意,我不是程序员,希望你能保持简单易懂的回答。这是我第一次涉足编程世界。谢谢!

我已经通过pip安装了Anaconda和模块requests、bs4、lxml、selenium。你除了Anaconda自带的Python环境外还有其他的吗? - amanb
2
不需要使用 pip 安装这些软件包,因为这些软件包可以在 conda 渠道中获得。因此,应该通过 conda install lxmlconda install beautifulsoup4 等方式完成安装,避免与通过 pip 安装的现有 Python 软件包冲突。 - amanb
@user8212173 我最初尝试使用IDLE,但遇到了一些问题,所以我转而使用Anaconda。除了安装我列出的模块之外,我没有做任何其他事情。 - Litmon
我执行了conda安装lxml,它显示安装成功。我重新启动后再次尝试相同的代码,但仍然出现相同的错误。 - Litmon
我也尝试了 "from lxml import html",但它告诉我出现了 ModuleNotFoundError: no module named 'lxml'。 - Litmon
当lxml安装在不同于conda环境的环境中时,这很可能是情况。您能够导入其他软件包吗?例如import requests - amanb
1个回答

2
我曾经遇到过同样的问题,通过从conda卸载lxml并使用pip重新安装来解决它。
以下是我在使用conda安装所有包时的软件包列表。
Name                    Version                   Build  Channel
asn1crypto                0.24.0                   py37_0
beautifulsoup4            4.7.1                    py37_1
ca-certificates           2019.1.23                     0
certifi                   2018.11.29               py37_0
cffi                      1.11.5           py37h74b6da3_1
chardet                   3.0.4                    py37_1
cryptography              2.5              py37h7a1dbc1_0
idna                      2.8                      py37_0
libiconv                  1.15                 h1df5818_7
libxml2                   2.9.9                h464c3ec_0
libxslt                   1.1.33               h579f668_0
lxml                      4.3.1            py37h1350720_0
openssl                   1.1.1a               he774522_0
pip                       19.0.1                   py37_0
pycparser                 2.19                     py37_0
pyopenssl                 19.0.0                   py37_0
pysocks                   1.6.8                    py37_0
python                    3.7.2                h8c8aaf0_2
requests                  2.21.0                   py37_0
selenium                  3.141.0          py37he774522_0
setuptools                40.8.0                   py37_0
six                       1.12.0                   py37_0
soupsieve                 1.7.1                    py37_0
sqlite                    3.26.0               he774522_0
urllib3                   1.24.1                   py37_0
vc                        14.1                 h21ff451_3    anaconda
vs2015_runtime            15.5.2                        3    anaconda
wheel                     0.32.3                   py37_0
win_inet_pton             1.0.1                    py37_1
wincertstore              0.2                      py37_0
zlib                      1.2.11               h62dcd97_3

bs4.FeatureNotFound: 找不到具有您请求的功能的树生成器:lxml。您需要安装解析器库吗?

在使用conda卸载并通过pip重新安装后:

Name                    Version                   Build  Channel
asn1crypto                0.24.0                   py37_0
beautifulsoup4            4.7.1                    py37_1
ca-certificates           2019.1.23                     0
certifi                   2018.11.29               py37_0
cffi                      1.11.5           py37h74b6da3_1
chardet                   3.0.4                    py37_1
cryptography              2.5              py37h7a1dbc1_0
idna                      2.8                      py37_0
libiconv                  1.15                 h1df5818_7
libxml2                   2.9.9                h464c3ec_0
libxslt                   1.1.33               h579f668_0
lxml                      4.3.1                     <pip>
openssl                   1.1.1a               he774522_0
pip                       19.0.1                   py37_0
pycparser                 2.19                     py37_0
pyopenssl                 19.0.0                   py37_0
pysocks                   1.6.8                    py37_0
python                    3.7.2                h8c8aaf0_2
requests                  2.21.0                   py37_0
selenium                  3.141.0          py37he774522_0
setuptools                40.8.0                   py37_0
six                       1.12.0                   py37_0
soupsieve                 1.7.1                    py37_0
sqlite                    3.26.0               he774522_0
urllib3                   1.24.1                   py37_0
vc                        14.1                 h21ff451_3    anaconda
vs2015_runtime            15.5.2                        3    anaconda
wheel                     0.32.3                   py37_0
win_inet_pton             1.0.1                    py37_1
wincertstore              0.2                      py37_0
zlib                      1.2.11               h62dcd97_3

收集lxml 使用缓存的https://files.pythonhosted.org/packages/12/9e/316022255a2b715b0efaa967aa89119544906b3ed4f5131c1c9b6962baca/lxml-4.3.1-cp37-cp37m-win_amd64.whl 安装收集的软件包:lxml 成功安装lxml-4.3.1 对我而言,它有效 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接