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

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

我发现了两种方法可以做到这一点:1)解压缩tar文件,然后在提取的目录中运行“python setup.py install”。 2) https://pip.pypa.io/en/stable/reference/pip_install/#examples中示例#7的“pip install packagename.tar.gz”

这两种方式是否有区别?

表面上,两者都做同样的事情:做任何python setup.py installpip install <PACKAGE-NAME>将安装您的python包,最less量的大惊小怪。

但是,使用点提供了一些额外的优势,使得它使用更好。

  • 点将自动为您下载一个包的所有依赖项。 相反,如果使用setup.py ,则通常必须手动search并下载依赖项,这很乏味,可能会令人沮丧。
  • pip会跟踪各种元数据,使您可以使用单个命令轻松卸载和更新软件包: pip uninstall <PACKAGE-NAME>pip install --upgrade <PACKAGE-NAME> 。 相反,如果您使用setup.py安装包,则必须手动删除和维护包,如果您想摆脱它,这可能会容易出错。
  • 您不再需要手动下载文件。 如果你使用setup.py ,你必须访问图书馆的网站,找出下载的地方,提取文件,运行setup.py …相反,pip会自动searchPython Package Index (PyPi)来查看是否该软件包在那里存在,并会自动为您下载,解压缩和安装软件包。 除了less数几个例外,几乎每一个真正有用的Python库都可以在PyPi上find。
  • 点将让你轻松安装车轮,这是Python发行版的新标准。 更多关于车轮的信息 。
  • pip提供了与virtualenv完美集成的额外优势,这是一个让您运行多个需要在您的计算机上存在冲突的库和Python版本的项目的程序。 更多信息 。
  • 从Python 2.x系列的Python 2.7.9到Python 3.x系列的Python 3.4.0到Python的默认情况下,Python都是使用Python进行捆绑的,这使得它更易于使用。

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


如果您使用的是旧版本的Python,无法升级,并且没有安装pip,您可以在以下链接中find有关安装pip的更多信息:

  • 关于为所有操作系统安装pip的官方说明
  • 在Windows上安装pip的指导(包括常见问题的解决scheme)
  • 有关为Mac OX安装pip的说明

点子本身并不需要教程。 90%的时间,你真正需要的唯一命令是pip install <PACKAGE-NAME> 。 也就是说,如果您有兴趣了解更多关于pip详细信息,请参阅:

  • 快速入门指南
  • 官方文件 。

通常还build议您一起使用pip和virtualenv。 如果你是Python的初学者,我个人认为在全球范围内使用pip和安装软件包就可以了,但是最终我认为你应该转向使用virtualenv来处理更严重的项目。

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

  • 为什么你应该使用pip和virtualenv
  • Python初学者对Pip和Virtualenv的非神奇介绍
  • 虚拟环境

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

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

总结:使用pip