![](/img/trans.png)
[英]What's the difference between apt-get virtualenv and pip virtualenv?
[英]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安裝的則工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.