37

我正在尝试在 Ubuntu 机器上部署 Django 站点。我需要安装 Psycopg2 和 PIL,但似乎我可以使用 apt-get 或 pip 安装它们。两种安装方式有区别吗?我知道使用 pip,我可以将它安装到虚拟环境中,但是使用 apt-get 可以将它安装在全局 python 环境中。

4

7 回答 7

36

您可能已经知道 apt-get 的好处。自动更新通知,其他需要这些工具的 apt-installed 软件包知道它们已安装,等等。

使用 pip,您知道在安装它时您将获得最新版本,您可以安装到 Python 的非默认版本,也可以安装到 virtualenv。

如果您不需要 pip 提供的任何功能,并且您不必经常安装 APT 上不可用的其他 Python 包,请使用 APT 版本。

于 2011-07-29T14:39:49.797 回答
21

这个问题的大多数答案都错过了使用的优势之一apt-get

apt-get预编译的,安装速度pip.

安装 numpy、matplotlib、pandas 和其他 scipy 相关模块,apt-get只需几秒钟;pip可以轻松消耗10分钟+。

如果您有 root 访问权限并且不介意有点过时的版本,apt-get那么这是一种快速且无忧的方法。

于 2014-10-14T05:01:55.333 回答
5

您应该知道,包管理器中的内容经过了一些集成测试,而 Pypi 中的内容未经测试。

Pypi 适合开发。

在生产环境中,您可能会使用 Pypi,但您很快就会了解到,您始终可以依赖包管理器中的内容......

于 2015-07-06T06:47:47.960 回答
3

I always recommend installing Python package with pip, because some OS package managers do packages customizations, and it can either break or change package's behavior.

If you need to install a package globally:

$ sudo pip install PACKAGE

And it will try to download your package from PyPI or project's links.

于 2011-07-31T17:56:05.473 回答
2

你应该使用哪一个:apt-get 和 pip 都是成熟的包管理器,它们在安装时会自动安装任何其他包依赖项。您可以随意使用任何人。但是,如果您需要安装特定版本的 python-package,或者将包安装在 virtualenv 中,或者安装仅托管在 PyPI 上的包;只有 pip 可以帮助您解决该问题。否则,如果您不介意将软件包安装在系统范围的位置,那么您使用 apt-get 还是 pip 并不重要。

于 2019-06-20T14:18:29.237 回答
1

我发现了一些关于这个的东西。我的 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安装的工作正常。

于 2020-03-20T03:27:13.723 回答
0

有时名称不同:

sudo apt install libopencv-dev python3-opencv

pip install opencv-python

但有时是一样的:

在此处输入图像描述

于 2021-11-10T02:57:07.223 回答