我前几次写了一个包含
的脚本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 with Python 2.7.3。
一切似乎都很好。我看不出可能出现什么问题。
解决:
最后使用
导入etreefrom xml import etree
不知道为什么以及是否存在差异但是它按预期工作。
答案 0 :(得分:6)
您在编辑中引用的解决方案,使用xml.etree而不是lxml.etree并不是更好的方法,因为这些模块已知incompatibilities,主要是因为lxml肯定更多{{3 }}
提供干净环境的好方法是使用 virtualenv :
$ virtualenv myproject
$ cd myproject
$ ./bin/pip install lxml # Repeat this with other dependencies
[wait for download and compiling]
然后,使用 ./ bin / python 来执行您的脚本。 这种方法的优点是:
作为参考,实现这一目标的更强大但更复杂的方法是使用optimised,但如果您只想执行简单的单文件脚本,它看起来就像用火箭筒狩猎苍蝇一样。
答案 1 :(得分:4)
解决了这个问题。
似乎我安装的软件搞砸了我的python路径。我在终端中调用python时使用的python是由软件安装的python,我的脚本调用的是我系统上安装的那个。
所以,我刚刚从bash的路径变量中删除了软件的python路径。
答案 2 :(得分:0)
在PyCharm中运行测试时遇到了这个问题。使用终端和虚拟环境时,我可以导入lxml,但是使用相同的虚拟环境运行测试会导致ImportError。
就我而言,从lxml 3.3.5升级到4.2.5可以解决此问题。
答案 3 :(得分:0)
这可能与您的Python环境有关。这是三种故障排除方法,从最小到最繁琐
pip uninstall lxml
pip install lxml
pip uninstall lxml
)卸载from lxml import etree
假设您在虚拟环境中工作(如果没有,请为您和家人感到羞耻):删除并创建一个新环境。
答案 4 :(得分:0)
如果您正在处理 conda,我会“发现,我的 conda install lxml 在“成功”安装后无法正常工作
尝试使用 pip 卸载并重新安装,这对我有用
conda remove lxml
pip install lxml
答案 5 :(得分:-2)
对于Python 3.6,它非常棘手。
我遇到同样的问题,并尝试安装最新版本,lxml 3.8。但我仍然得到错误。然后我使用lxml 3.7.3,然后就可以了。