在Ubuntu 10.10上,我无法将lxml安装到python 2.7。以下是我采取的步骤。
sudo su -
apt-get install python2.7
apt-get install python-lxml
请注意,在运行python-lxml软件包的安装时,会出现以下内容:
INFO: using unknown version '/usr/bin/python2.7' (debian_defaults not up-to-date?)"
在python2.6中导入模块(Ubuntu标配的版本)可以正常工作。但是,在python2.7下导入模块则不行。那么如何将Python模块安装到非默认的Python安装中呢?
答案 0 :(得分:5)
尝试安装libxml2, libxml2-dev, libxslt, libxslt-dev, python-dev
。这些是头文件。然后尝试再次安装lxml
。
答案 1 :(得分:4)
在Ubuntu 10.10上,从存储库安装的python包安装到/usr/lib/python2.6/dist-packages,因此一个选项是将此路径添加到$ PYTHONPATH环境变量中,以便python2.7查看libs的python2.6目录。
我在Ubuntu 10.10上所做的就是添加
export PYTHONPATH="$PYTHONPATH:/usr/lib/python2.6/dist-packages"
到我的.bashrc文件,也到我的.gnomerc文件。这为从shell或gnome桌面启动的python实例设置了$ PYTHONPATH。然后,您应该能够从python2.7中的Ubuntu存储库导入已安装的python库。
.bashrc和.gnomerc都位于您的主目录中;如果它还不存在,您可能必须创建.gnomerc。还有一点需要注意:我的.gnomerc中出现了语法错误,导致gnome桌面停止加载,我无法登录。我不得不使用恢复控制台修复此语法错误,然后我可以再次登录。 / p>
这对我来说似乎有点迟钝,所以我有兴趣听听更好的解决方案。
答案 2 :(得分:0)
另一种解决方案可能是使用以下代码:
try:
from lxml import etree
except ImportError:
try:
# Python 2.5
import xml.etree.cElementTree as etree
except ImportError:
try:
# Python 2.5
import xml.etree.ElementTree as etree
except ImportError:
try:
# normal cElementTree install
import cElementTree as etree
except ImportError:
try:
# normal ElementTree install
import elementtree.ElementTree as etree
except ImportError:
print("Failed to import ElementTree from any known place")
[Source]
如果可用,则导入lxml,否则导入原始ElementTree。
我在Google App Engine上使用此代码(使用Python 2.7):在服务器上它将使用lxml,在我的机器上它将使用ElementTree。
答案 3 :(得分:0)
我有一个最简单的技巧只需在搜索框中打开synaptic包管理器类型“python-lxml”,它将显示所有依赖项和可用包选择要安装的包并点击应用。