我想在我的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时,它来自哪个(或其他地方?)?
推理!
答案 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