2017-02-02 30 views
0

我感到困惑安裝外部Python包的可能性:當安裝外部python包全局,當本地?點或系統包管理器?

  1. 安裝包本地與pip/home/chris/.local/lib/python3.4/site-packages
    $ pip install --user packagename

  2. 安裝包全局與pip/usr/local/lib/python3.4/site-packages
    (需要超級用戶權限)
    $ pip install packagename

  3. 安裝包全局與zypper/usr/lib/python3.4/site-packages
    (需要超級用戶權限)
    $ zypper install packagename

我用了OpenSuse與包經理zypper並有機會獲得root用戶。

我(想)知道pip是:
- pip只需下載最新版本。
- 如果有更新的版本可用,安裝的軟件包將不會被檢查。
- 自己的軟件包可以安裝在虛擬環境中。
- 需要更多時間下載和安裝,比zypper
- 可以進行本地或全球安裝。

我係統的軟件包管理器:
- 下載和安裝速度更快。
- 僅在全局安裝軟件包。

我的問題是什麼時候,爲什麼我應該做的安裝:pip(本地和全球)或zypper
我讀過很多關於這個問題,但無法清楚地回答這個問題......

回答

0

在/ usr/lib中的東西被認爲是操作系統的一部分系統軟件包。操作系統腳本和服務很可能會依賴於這些組件。我建議不要觸摸這些,或者真正使用或依賴於它們的用戶腳本,因爲這會使您的應用程序操作系統甚至操作系統版本相關。使用這些如果編寫腳本運行在系統級別,如執行維護或管理任務,雖然我會認真考慮即使這些使用...

在/ usr/local/lib下的東西安裝在本地供任何用戶使用。系統腳本等不依賴於這些(我自己並不知道SuSE),但其他用戶的腳本可能會這樣做,因此在進行更改時需要記住這一點。這是一個共享資源。如果您編寫其他用戶可能需要運行的腳本,則針對此進行開發以確保他們可以訪問所有必需的依賴項。

你家目錄中的東西都是你的,你也會如此。如果你只是爲自己寫一些東西,特別是如果你需要腳本可以移植到其他盒子/操作系統的話,請使用它。

很可能有其他選擇是有意義的,比如如果你是開發應用軟件團隊的一員,在這種情況下,將團隊的基本開發包安裝在共享位置,但可能不是/ usr/local。

在使用zypper或pip方面,我建議使用zypper更新/ usr/lib,因爲它是OS配置更新的特定工具。對於/ usr/local/lib也可能是相同的,因爲它實際上是「系統」的一部分,但這真的取決於你,哪種方法可能最有意義,例如,如果你需要複製配置另一臺主機。對於你的homedir中的東西,這取決於你,但是如果你決定在新的操作系統上移動到新主機,點將仍然可用,並且環境將更容易重新創建。

相關問題