2017-04-27 70 views
15

我开始使用python。我在我的项目中添加了require.txt和setup.py。但我仍然对这两个文件感到困惑。我得到了一些信息,如setup.py是为可再发行的东西而设计的,而且requirements.txt是为非可再发行的东西而设计的。但我不知道这是否正确。requirements.txt vs setup.py

可以请帮帮我。

+0

hi @lucy欢迎来到SO ...您需要创建[mvce](https://stackoverflow.com/help/mcve) –

+0

您是否使用确切的标题搜索了网页? [本文](https://caremad.io/posts/2013/07/setup-vs-requirement/)(我搜索时的第一次打)是我读过的最好的主题。 – Chris

+1

本文可能有用:https://caremad.io/posts/2013/07/setup-vs-requirement/(对不起,懒得提取必需品到正确的答案)。另一件事是,有些工具(例如测试)可能会对其中一个或另一个产生偏见 - 但是如果您刚开始使用Python,不要让它烦扰您。 – drdaeman

回答

10

requirements.txt

这可以帮助你建立你的开发环境。像pip这样的程序可以用于一次性安装文件中列出的所有软件包。之后,你可以开始开发你的Python脚本。

setup.py

这允许你创建包,你可以重新分配。此脚本旨在安装您的软件包,而不是像pip -r < requirements.txt那样准备开发环境。 有关setup.py的更多详细信息,请参阅this answer

项目的依赖关系列在两个文件中。

+0

在哪些情况下,我只有其中一个?我会在哪两个? –

+1

呃......你只是在本地机器上玩的脚本:都不是。脚本是在多台机器/ vitualenvs上开发的,但没有重新分配:requirements.txt。脚本仅在您的机器上开发,但应重新分配:setup.py。脚本将在多个环境中重新分配和开发:两者。 – AndreasT

+0

您可以将此添加到答案吗? –