'python setup.py install'和'pip install'之间的区别

use*_*465 84 python pip virtualenv setup.py

我有一个外部包我想从tar文件安装到我的python virtualenv中.安装包的最佳方法是什么?

我发现了两种方法可以做到:

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

如果用这两种方式做它们有什么不同.

Mic*_*x2a 88

从表面上看,两者都做同样的事情:做任何一件事python setup.py install或者pip 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将让你轻松安装 wheel,这是Python发行版的新标准.有关车轮的更多信息.
  • pip提供了与使用相结合的额外好处virtualenv,这是一个允许您运行多个项目的程序,这些项目需要在您的计算机上存在冲突的库和Python版本.更多信息.
  • 默认情况下,pip与Python 2.x系列中的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和virtualenv.如果你是Python的初学者,我个人认为只需在全球范围内使用pip和安装包就可以了,但最终我认为你应该转换到使用virtualenv来处理更严肃的项目.

如果您想了解有关一起使用pip和virtualenv的更多信息,请参阅:

  • pip install 内部是否调用 setup.py 文件? (2认同)
  • @KenWilliams 即使“python setup.py install”现在也可以下载并安装依赖项,“pip install .”是更好的一个。因为“setup.py install”在安装时可以选择预发布版本,这在大多数情况下都不是您想要的。请参阅[此](https://github.com/pypa/setuptools/issues/855) (2认同)

Éri*_*ujo 17

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

pip是一个软件包管理器,可以安装,升级,列出和卸载软件包,比如熟悉的软件包管理器,包括:dpkg, apt, yum, urpmi, ports等等.它会运行python setup.py install,但是有特定的选项可以控制最终安装的方式和位置.

总结:使用pip.


the*_*eld 8

问题是关于安装包含 python 包的本地 tarball 的首选方法,而不是关于将包上传到 PyPi 等索引服务的优势。

以免我知道某些软件发行商不会将其软件包上传到 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/

  • 我们可以使用 pip install -e 吗? (3认同)