簡體   English   中英

使用 pip 與 apt-get 安裝軟件包有什么區別?

[英]What is the difference between installing a package using pip vs. apt-get?

我正在嘗試在 Ubuntu 機器上部署一個 Django 站點。 我需要安裝 Psycopg2 和 PIL,但似乎我可以使用 apt-get 或使用 pip 安裝它們。 兩種安裝方式有區別嗎? 我知道使用 pip,我可以將它安裝到虛擬環境中,但是使用 apt-get 將它安裝在全局 python 環境中。

您可能已經知道 apt-get 的好處。 自動更新通知、其他需要這些工具的 apt 安裝包知道它們已安裝等。

使用 pip,您知道在安裝時獲得的是最新版本,您可以安裝到 Python 的非默認版本,也可以安裝到 virtualenv。

如果您不需要 pip 提供的任何功能,並且您通常不必安裝其他無法通過 APT 使用的 Python 包,請使用 APT 版本。

這個問題的大多數答案都忽略了使用apt-get的優勢之一:

apt-get預編譯的,安裝速度pip快得多

安裝numpy、matplotlib、pandas等scipy相關模塊, apt-get只需幾秒; pip可以輕松消耗 10 分鍾以上。

如果您有 root 訪問權限並且不介意一些過時的版本, apt-get是一種快速而無憂的方式。

您應該知道包管理器中的內容經過了一些集成測試,而 Pypi 中的內容未經測試。

Pypi 可以用於開發。

在生產中,您可能會使用 Pypi,但您很快就會了解到您始終可以依賴包管理器中的內容...

我總是建議使用 pip 安裝 Python 包,因為一些操作系統包管理器會進行包定制,它可以破壞或改變包的行為。

如果您需要全局安裝軟件包:

$ sudo pip install PACKAGE

它會嘗試從PyPI或項目的鏈接下載您的包。

您應該使用哪一個:apt-get 和 pip 都是成熟的包管理器,它們在安裝時會自動安裝任何其他包依賴項。 您可以隨意使用任何人。 但是,如果您需要安裝特定版本的 python-package,或者在 virtualenv 中安裝該包,或者安裝僅托管在 PyPI 上的包; 只有 pip 可以幫助您解決該問題。 否則,如果您不介意在系統范圍的位置安裝軟件包,那么使用 apt-get 還是 pip 並不重要。

我發現了一些關於這個的東西。 我的 ubuntu 有 python 版本 3.6 和 3.7。 apt install python3-xxx 時,xxx 將安裝在 /usr/lib/python3/dist-packages,而 pip3 install xxx 在 /usr/local/lib/python3.7(我的默認 python 版本)/dist-packages。 並且當將python更改為3.6版本時,pip3安裝的xxx無法工作,而apt安裝的則工作正常。

有時名稱不同:

sudo apt install libopencv-dev python3-opencv

pip install opencv-python

但有時也一樣:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM