问题:’python setup.py install’和’pip install’之间的区别
我有一个要从tar文件安装到python virtualenv中的外部软件包。安装软件包的最佳方法是什么?
我发现了两种方法可以做到这一点:
- 提取tar文件,然后
python setup.py install
在提取的目录中运行。 pip install packagename.tar.gz
来自https://pip.pypa.io/en/stable/reference/pip_install/#examples中的示例7
这两种方式在做上是否有区别。
回答 0
从表面上看,都做同样的事情:无论是做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)来查看该软件包是否存在,以及会自动为您下载,解压缩并安装该软件包。除了少数exceptions,几乎所有真正有用的Python库都可以在PyPi上找到。 - pip可让您轻松安装轮子,这是Python发行版的新标准。有关轮子的更多信息。
- pip提供了与using良好集成的其他好处
virtualenv
,该程序使您可以运行多个项目,这些项目需要计算机上具有冲突的库和Python版本。更多信息。 - pip默认情况下与Python 2.x系列的Python 2.7.9及Python 3.x系列的Python 3.4.0及更高版本捆绑在一起,从而更加易于使用。
因此,基本上,使用点子。它仅提供对的改进python setup.py install
。
如果您使用的是旧版本的Python,无法升级且未安装pip,则可以在以下链接中找到有关安装pip的更多信息:
pip本身并不需要教程。90%的时间,您真正需要的唯一命令是pip install <PACKAGE-NAME>
。就是说,如果您想了解更多有关pip的功能的详细信息,请参阅:
通常也建议同时使用pip和virtualenv。如果您是Python的初学者,我个人认为最好只使用pip并在全球范围内安装软件包,但最终我还是认为在处理更严重的项目时,您应该过渡到使用virtualenv。
如果您想了解有关一起使用pip和virtualenv的更多信息,请参见:
回答 1
python setup.py install
与make install类似:这是将文件编译和复制到目标目录的有限方式。这并不意味着它是在系统上真正安装软件的最佳方法。
pip
是一个程序包管理器,可以安装,升级,列出和卸载程序包,例如熟悉的程序包管理器,包括:dpkg, apt, yum, urpmi, ports
等。它可以在内运行python setup.py install
,但具有特定的选项来控制最终安装的方式和位置。
总结:使用pip
。
回答 2
问题是关于安装包含python软件包而不是NOT 的本地tarball的首选方法关于将软件包上传到索引服务(如PyPi)的好处。
至少我知道一些软件发行商不会将其软件包上传到PyPi,而是要求开发人员从其网站下载软件包并进行安装。
python setup.py安装
这可以工作,但不建议这样做。无需解压缩tarball文件并进入其中以运行setup.py文件。
点安装../path/to/packagename.tar.gz
这是设计和首选的方式。简洁并与PyPi样式的包对齐。
有关更多信息,请pip install
参见:https://pip.readthedocs.io/en/stable/reference/pip_install/