用於處理 Python 包的 Pip 與包管理器
Python 包經常託管在許多發行版的儲存庫中。閱讀本教程後,特別是標題為“你真的想這樣做”的部分後,我避免使用 pip,而是更喜歡使用系統儲存庫,只有當我需要安裝不在儲存庫中的包時才使用 pip。
但是,因為這是一種不一致的安裝方式,所以只使用pip會更好嗎?對於在兩個地方都可用的軟體包,在系統自己的儲存庫上使用 pip 有什麼好處/反對者?
我包含的連結狀態
始終使用標準 Debian / NeuroDebian 軟體包的優勢在於,這些軟體包都經過仔細測試以相互兼容。Debian 軟體包記錄了與其他庫的依賴關係,因此您將始終獲得所需的庫作為安裝的一部分。
我用拱門。除了 apt 之外的其他包管理系統是否也是這種情況?
我看到
pip
在您的系統上安裝 Python 模組(無論是作為系統模組還是作為使用者模組)的最大缺點是您的發行版的包管理系統不會知道它們。這意味著它們不會用於任何其他需要它們的軟體包,以及您將來可能想要安裝的軟體包(或者可能在升級後開始使用其中一個模組);然後,您將獲得模組的 - 和分發管理版本,這可能會導致問題(我最近pip
遇到了另一個實例)。所以你的問題最終是一個全有或全無的命題:如果你只使用pip
對於 Python 模組,您不能再將發行版的包管理器用於任何想要使用 Python 模組的東西……您連結到的頁面中給出的一般建議非常好:嘗試盡可能使用您的發行版包,僅
pip
用於未打包的模組,並且當您這樣做時,請在您的使用者設置中而不是系統中這樣做 -寬的。盡可能使用虛擬環境,特別是模組開發。尤其是在 Arch 上,您不應該遇到由舊模組引起的問題;即使在可能成為問題的發行版上,虛擬環境也很容易處理它。始終值得考慮的是,發行版的庫和模組包主要是為了使用發行版中的其他包而打包的;將它們放在身邊是使用這些庫和模組進行開發的一個很好的副作用,但這不是主要案例。