我已经创建了一个虚拟环境来使用tensorflow。我遵循了来自 此处:
virtualenv --system-site-packages -p python3 ./venv
我已经安装了必要的模块,包括 美人汤4(BS4) 和 lxml 使用
pip install beautifulsoup4
pip install lxml
似乎成功了。但是当我试图解析一个xml文件时,我得到了一个错误,好像我没有安装好 lxml:
with open(path/to/xml.file)) as f:
soup = BeautifulSoup(f, 'xml')
bs4.FeatureNotFound: 找不到具有你所要求的功能的树形构建器:xml。你需要安装一个解析器库吗?
如果我尝试其他的解析器工作和预期的一样(或类似的东西)。
soup = BeautifulSoup(f, 'html.parser')
似乎可以正常工作,而:
soup = BeautifulSoup(f, 'html5lib')
加载成功,但不能正确读取xml。不过这里不是问题。
由于某些原因,我的lxml安装似乎坏了。
Pip报告它已经安装了,但我不能卸载或降级到不同的版本。比如说,我发现现有的安装:lxml 3
pip uninstall lxml
发现现有的安装:lxml 3.5.0 在usrlibpython3dist-packages处没有卸载lxml,在环境homexxxxxtensorflow_1-15_GPU之外无法卸载'lxml'。没有找到可以卸载的文件。
有谁知道如何强行卸载 "lxml"?lxml 或者至少解决这个问题?
我使用的是Ubuntu 16.04,python 3.6,beautifulsoup4 4.4.1和lxml 3.5.0。
编辑:我最近换成了python3.6,好像少了一些库。试图降级 lxml 报告(其中包括)一个错误。
pyconfig.h: 没有这样的文件或目录
这可能是我的模块损坏的原因。我没有python3.6的文件,只有python2.7和python3.5m的文件。只有 python2.7 和 python3.5m (我想知道 3.5m 是什么)。
正如我在编辑中提到的,当我试图降级时,抛出了一个错误信息(仅此一次)。lxml:
pyconfig.h。无此文件或目录
这让我检查了python3.6的实际库。它们缺失了,在使用...安装后,问题就解决了。
sudo apt install python3.6-dev
安装后,问题就解决了。