lxml 3.1.2和lxml2都在ubuntu上

时间:2013-11-08 06:29:44

标签: python ubuntu lxml pip

我想在我的ubuntu 12.04上安装lxml 3.1.2。它已经通过包管理器安装了lxml2。有没有人已经成功完成了lxml的双重安装?

我有点担心我的安装混乱,主要是因为我的安装看起来很混乱!

我阅读了文档:

  

将lxml与python-libxml2一起使用

     

如果你想将lxml与官方的libxml2 Python一起使用   绑定(可能因为你的一个依赖项使用它),你必须   静态地构建lxml。否则,两个包将干扰   libxml2库需要全局配置的地方   从消失的功能到崩溃可以产生任何影响   在两者中的任何一个。要获得静态构建,请通过   setup.py脚本的--static-deps选项,或者将STATIC_DEPS或STATICBUILD环境变量设置为true运行pip,即   STATIC_DEPS = true pip install lxml STATICBUILD环境变量   处理等效于STATIC_DEPS变量,但由   其他一些扩展包也是。

所以我准备好了

STATIC_DEPS=true pip install lxml
但是我犹豫了。假设这有效,我如何在python程序中区分我正在使用的lxml?

import lxml 

请问我哪个lxml?

现在, pip freeze lxml 给了我lxml == 2.3.2

我现在不知道这是来自pip install还是ubuntu包...

使用dpkg -L python-lxml,我得到很多文件,其中包括:

> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/not-zip-safe
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/SOURCES.txt
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/dependency_links.txt
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/top_level.txt
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/PKG-INFO

以及:

> /usr/share/pyshared/lxml-2.3.2.egg-info
> /usr/share/pyshared/lxml-2.3.2.egg-info/not-zip-safe
> /usr/share/pyshared/lxml-2.3.2.egg-info/SOURCES.txt
> /usr/share/pyshared/lxml-2.3.2.egg-info/dependency_links.txt
> /usr/share/pyshared/lxml-2.3.2.egg-info/top_level.txt
> /usr/share/pyshared/lxml-2.3.2.egg-info/PKG-INF

当我使用lxml时,它来自哪个(或其他地方?)?

推理!

1 个答案:

答案 0 :(得分:2)

您可以找到正在运行的lxml

$ python -c "import lxml; print lxml.__file__"

如果您想使用同一个软件包的多个版本,您可能会发现virtualenv很有用。事实上,即使没有这种条件也很有用。

为简化虚拟环境的使用,您希望使用virtualenvwrapper。 然后你可以简单地切换:

$ workon lxml232
(lxml232) $ python -c "import lxml.etree; print lxml.etree.__version__"
2.3.2
(lxml232) $ workon lxm312
(lxml312) $ python -c "import lxml.etree; print lxml.etree.__version__"
3.1.2