Python无法找到lxml模块



我以前写过一个包含

的脚本
from lxml import etree

但是,不幸的是它不再工作了。我用

检查了安装
sudo apt-get install python-lxml
sudo pip install lxml
sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev

我检查了它是否可以是我的python版本:

me@pc:~$ python
Python 2.7.3 (default, Sep 14 2012, 14:11:57) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named lxml

我的操作系统是ubuntu 12.04.1 LTS和Python 2.7.3。

一切都很好。我看不出有什么问题

您的解决方案引用在编辑,其中使用xml。ettree而不是lxml。Etree不是更好的方法,因为这些模块有已知的不兼容性,主要是因为LXML肯定更优化。

创建一个干净的环境的一个好方法是使用virtualenv:
$ virtualenv myproject
$ cd myproject
$ ./bin/pip install lxml # Repeat this with other dependencies
[wait for download and compiling]

然后使用。/bin/python执行脚本。这种方法的优点是:

  • 你可以在你的系统和你的项目之间有不同版本的依赖关系
  • 即使您破坏了虚拟环境中的所有内容,也不会危及系统的其余部分
  • 你不需要root权限来进行安装

作为参考,实现这一点的更强大但稍微复杂的方法是使用buildout,但是如果您只想执行一个简单的单文件脚本,它看起来就像用火箭筒狩猎苍蝇。

问题解决了

似乎是我安装的一个软件弄乱了我的python路径。我在终端中调用python时使用的python是软件安装的python,脚本调用的python是系统上安装的python。

所以,我只是从bash的path变量中删除了软件的python路径

我在PyCharm中运行测试时遇到了这个问题。我可以在使用终端和虚拟环境时导入lxml,但是使用相同的虚拟环境运行测试会导致importterror。

在我的例子中,从lxml 3.3.5升级到4.2.5解决了这个问题。

如果您正在处理conda,我发现,在"成功"之后,我的conda安装LXML不能正常工作。安装

尝试用pip卸载和重新安装,这对我有效

conda remove lxml
pip install lxml

这可能与您的Python环境有关。以下是三种故障排除方法,从最简单到最繁琐

1)通过pip重新安装
pip uninstall lxml
pip install lxml
2)通过IDE重新安装
  • 从终端卸载它(pip uninstall lxml)
  • 在python文件的开头添加from lxml import etree
  • 让我的IDE (PyCharm)显示缺少导入错误
  • 悬停在错误上,并通过错误修复弹出窗口(不是终端)从IDE安装
3)重新创建virtualenv

假设你在虚拟环境中工作(如果不是,你和你的家人感到羞耻):删除并创建一个新环境。

对于Python 3.6,这是非常棘手的。

我有同样的问题,并尝试安装最新版本,lxml 3.8。但还是会出现错误。然后我用了lxml 3.7.3,就可以了

最新更新