我問這個問題: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 STATICILD 環境變數的處理方式相同到STATIC_DEPS 變量,但也被其他一些擴充包使用。
我通常對 pip 包和 ubuntu 包如何相處感到困惑,所以我猶豫是否要運行STATIC_DEPS=true pip install lxml。它會損壞/混淆我安裝的 lxml2 套件嗎?
SO 的建議是在 virtualenv 中安裝新的 lxml。這看起來是最好的方法,但 lxml 網站建議雙重安裝也可以運作。
一般來說:如果我對 apt-get 已安裝的軟體包使用 pip (以獲得更新的安裝)會發生什麼?
答案1
Ubuntu 在其發行版中廣泛使用了 Python。因此,我的策略是嚴格保留 Ubuntu 提供的版本,僅透過更新管理器或 apt-get 更新它們。透過這種方式,我避免了依賴特定 python 套件/模組版本的某些 Ubuntu 程式碼不穩定的風險。
我在 virtualenv 工作區中完成所有開發工作,並設定命令列和 Eclipse,以便為我正在處理的任何應用程式使用適當的工作區。因此我不干擾Ubuntu,Ubuntu也不干擾我。
lxml 的雙重安裝很可能會“工作”,但安裝可能很脆弱。為什麼要冒這個險?