2013-03-30 721 views
43

我有一個外部軟件包,我想從tar文件安裝到我的python virtualenv中。 安裝軟件包的最佳方式是什麼?'python setup.py install'和'pip install'之間的區別

我發現了兩種方法可以做到這一點: 1)解壓縮tar文件,然後在提取的目錄中運行'python setup.py install'。 2)'pip install packagename.tar.gz'from example#7 in https://pip.pypa.io/en/stable/reference/pip_install/#examples

如果在這兩種方式中做它們有什麼區別,

+2

使用'pip'。您可以使用它卸載軟件包。 – Blender

+0

「來自源代碼」,如「VCS checkout」中,或者「sdist」中的? – delnan

+0

什麼是「最好」取決於您的要求!你有沒有嘗試過這些解決方案,並以某種方式失敗?或者你問這些方法之間有什麼區別? –

回答

48

表面上,兩者都做同樣的事情:或者python setup.py installpip install <PACKAGE-NAME>將爲您安裝您的python包,最少量的大驚小怪。

但是,使用pip提供了一些額外的優點,使它更好用。

  • pip會自動爲您下載軟件包的所有依賴關係。相反,如果您使用setup.py,則通常必須手動搜索並下載依賴項,這很乏味且可能令人沮喪。
  • pip可以跟蹤各種元數據,這些元數據使您可以使用單個命令輕鬆卸載和更新軟件包:pip uninstall <PACKAGE-NAME>pip install --upgrade <PACKAGE-NAME>。相反,如果您使用setup.py安裝軟件包,則必須手動刪除和維護軟件包,如果您想要刪除該軟件包,可能會出現錯誤。
  • 您不再需要手動下載文件。如果您使用setup.py,則必須訪問圖書館的網站,確定要下載它的位置,提取文件,運行setup.py ...相反,pip將自動搜索Python Package Index(PyPi)以查看包是否存在,以及會自動爲你下載,提取和安裝軟件包。除了少數幾個例外,幾乎每一個真正有用的Python庫都可以在PyPi上找到。
  • pip會讓你easily install輪子,這是Python發行版的新標準。 More info about wheels
  • pip提供了與使用virtualenv完美集成的其他好處,該程序可讓您運行多個需要在計算機上存在衝突的庫和Python版本的項目。 More info
  • 從Python 2.x系列的Python 2.7.9開始,Python 3.x系列上的Python 3.4.0開始,pip與Python默認捆綁在一起,使其更易於使用。

所以基本上用pip。它只改進了使用python setup.py install


如果您使用的Python的是舊版本,無法升級,而沒有安裝點子,你可以找到在以下鏈接安裝PIP的更多信息:

點子,本身並不需要教程。 90%的時間,你真正需要的唯一命令是pip install <PACKAGE-NAME>。這就是說,如果你有興趣瞭解更多有關的究竟是什麼,你可以用PIP做的詳細信息,請參閱:

通常還建議您一起使用pip和virtualenv。如果你是Python的初學者,我個人認爲在全球範圍內使用pip和安裝軟件包就可以了,但最終我認爲你應該轉向使用virtualenv來解決更嚴重的項目。

如果您想了解更多關於使用PIP和的virtualenv一起,請參閱:

8

python setup.py install是化妝的模擬安裝:這是一種編譯和複製文件到目標目錄的有限方法。這並不意味着這是真正在您的系統上安裝軟件的最佳方式。

pip是的軟件包管理器,它可以安裝,升級,名單和卸載包,喜歡熟悉的包管理器包括:dpkg, apt, yum, urpmi, ports等引擎蓋下,它將運行python setup.py install,但具體的選項來控制的東西如何以及在何處結束已安裝。

總結:使用pip

相關問題