关于virtualenv:’python setup.py install’和’pip install’之间的区别

Difference between 'python setup.py install' and 'pip install'

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

我发现了两种方法:

  • 提取tar文件,然后在提取的目录中运行python setup.py install
  • 来自https://pip.pypa.io/en/stable/reference/pip_install/示例7中示例7的pip install packagename.tar.gz
  • 是否在这两种方式上有什么不同。


    从表面上看,这两种方法都是一样的:无论是执行python setup.py install还是pip install ,都将为您安装python包,只需最少的麻烦。

    然而,使用PIP提供了一些额外的优势,使其更好地使用。

    • PIP将自动为您下载包的所有依赖项。相反,如果您使用setup.py,则通常需要手动搜索和下载依赖项,这很繁琐,并且可能会变得令人沮丧。
    • PIP跟踪各种元数据,这些元数据允许您使用单个命令轻松卸载和更新包:pip uninstall pip install --upgrade 。相反,如果您使用setup.py安装包,那么如果您想删除包,就必须手动删除和维护它,这可能是容易出错的。
    • 您不再需要手动下载文件。如果你使用setup.py,你必须访问图书馆的网站,找到下载的地方,提取文件,运行setup.py。相反,pip将自动搜索python包索引(pypi)以查看包是否存在,并将自动为您下载、提取和安装包。除了一些例外,几乎每个真正有用的python库都可以在pypi上找到。
    • PIP可以让您轻松地安装轮子,这是Python发行版的新标准。有关车轮的详细信息。
    • PIP提供了与使用virtualenv很好地集成的额外好处,该程序允许您运行多个项目,这些项目需要在计算机上使用冲突的库和Python版本。更多信息。
    • 默认情况下,从Python2.x系列的python 2.7.9开始,到Python3.x系列的python 3.4.0开始,pip与python捆绑在一起,使用起来更加容易。

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

    如果您使用的是旧版本的python,无法升级,并且没有安装pip,则可以在以下链接中找到有关安装pip的详细信息:

    • 有关为所有操作系统安装PIP的正式说明
    • 关于在Windows上安装PIP的说明(包括常见问题的解决方案)
    • 安装Mac OX PIP的说明

    PIP本身并不需要教程。90%的时候,你真正需要的命令是pip install 。也就是说,如果您有兴趣了解更多关于您可以对PIP做什么的详细信息,请参见:

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

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

    如果您想进一步了解如何一起使用pip和virtualenv,请参见:

    • 为什么要使用pip和virtualenv
    • 对python初学者的pip和virtualenv的非魔法介绍
    • 虚拟环境

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

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

    综上所述:使用pip