我问了这个问题:https://stackoverflow.com/questions/19852911/lxml-3-1-2-and-lxml2-both-on-ubuntu/19856674#19856674
但这可能更适合 AskUbuntu。因此,这里再次重新表述。
在 lxml 网站上,他们建议可以在 ubuntu 上同时拥有 lxml2 和最新版本的 lxml:
使用 lxml 和 python-libxml2
如果您想将 lxml 与官方 libxml2 Python 绑定一起使用(可能是因为您的某个依赖项使用它),则必须静态构建 lxml。否则,这两个包将在 libxml2 库需要全局配置的地方发生干扰,这可能会产生各种影响,从功能消失到两者之一崩溃。要获得静态构建,请将 --static-deps 选项传递给 setup.py 脚本,或在 STATIC_DEPS 或 STATICBUILD 环境变量设置为 true 的情况下运行 pip,即 STATIC_DEPS=true pip install lxml STATICBUILD 环境变量的处理方式与 STATIC_DEPS 变量相同,但也被其他一些扩展包使用。
我通常对 pip 包和 ubuntu 包如何相处感到困惑,所以我犹豫是否要运行STATIC_DEPS=true pip 安装 lxml。它会损坏/混淆我已安装的 lxml2 包吗?
SO 上的建议是在虚拟环境中安装新的 lxml。这看起来是最好的方法,但 lxml 网站建议双重安装也可以。
一般来说:如果我使用 pip(获取较新的安装)来安装已由 apt-get 安装的包,会发生什么?
答案1
Ubuntu 在其发行版中大量使用 Python。因此,我的政策是严格保留 Ubuntu 提供的版本,仅通过更新管理器或 apt-get 更新它们。这样,我避免了依赖于特定 Python 包/模块版本的某些 Ubuntu 代码不稳定的风险。
我的所有开发工作都在虚拟环境工作区中进行,并配置命令行和 Eclipse,以便为我正在开发的任何应用程序使用适当的工作区。因此,我不会干扰 Ubuntu,Ubuntu 也不会干扰我。
双重安装 lxml 很有可能“有效”,但安装可能很脆弱。为什么要冒这个险呢?