‘ python setup.py install’和‘ pip install’的区别

我有一个外部软件包,我想安装到我的 python viralenv 从一个 tar 文件。 安装软件包的最佳方法是什么?

我发现了两种方法:

  1. 提取 tar 文件,然后在提取的目录中运行 python setup.py install
  2. https://pip.pypa.io/en/stable/reference/pip_install/#examples中示例7中的 pip install packagename.tar.gz

是否有任何区别做这两种方式。

94698 次浏览

从表面上看,两者都做同样的事情: 做 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 包索引(PyPi)来查看包是否存在,并且会自动为你下载、解压和安装包。除了少数例外,几乎所有真正有用的 Python 库都可以在 PyPi 上找到。
  • Pip 将允许您使用 易于安装轮子,这是 Python 发行版的新标准。
  • Pip 提供了与使用 virtualenv很好地集成的额外好处,virtualenv是一个允许您在计算机上运行需要冲突库和 Python 版本的多个项目的程序。更多信息.
  • 在 Python 2.x 系列中,pip 默认与 Python 2.7.9捆绑在一起,在 Python 3.x 系列中,与 Python 3.4.0捆绑在一起,这使得它更容易使用。

所以基本上,使用 pip。它只比使用 python setup.py install提供了改进。


如果你使用的是旧版本的 Python,无法升级,也没有安装 pip,你可以在以下链接找到更多关于安装 pip 的信息:

Pip 本身并不需要教程。90% 的情况下,您真正需要的唯一命令是 pip install <PACKAGE-NAME>。也就是说,如果你有兴趣了解更多关于如何使用 pip 的细节,请参阅:

通常还建议您同时使用 pip 和 viralenv。如果你是 Python 的初学者,我个人认为开始在全球范围内使用 pip 和 install 软件包是可以的,但是最终我认为你应该在处理更严肃的项目时过渡到使用 viralenv。

如果您想了解更多关于如何同时使用 pip 和 viralenv 的信息,请参见:

python setup.py install类似于 make install: 它是编译文件并将其复制到目标目录的有限方法。这并不意味着这是在您的系统上真正安装软件的最佳方式。

pip是一个软件包管理器,它可以安装、升级、列表和卸载软件包,就像我们熟悉的软件包管理器一样,包括: dpkg, apt, yum, urpmi, ports等。在底层,它将运行 python setup.py install,但是有特定的选项来控制安装的方式和位置。

总之: 使用 pip

问题在于包含 python 软件包的 安装本地 tarball 的首选方法,以及将软件包上传到类似 PyPi 的 Windows索引服务的优势。

以免我知道一些软件经销商不上传他们的软件包到 PyPi,而是要求开发人员从他们的网站下载软件包并安装。

Python setup.py 安装

这可以工作,但不推荐。没有必要打开 tarball 文件并进入其中运行 setup.py 文件。

Pip install. ./path/to/packagename.tar. gz

这是设计和首选的方式。简洁并与 PyPi 风格的包保持一致。

关于 pip install的更多信息可以在这里找到: https://pip.readthedocs.io/en/stable/reference/pip_install/