2009-11-03 174 views
3

我刚刚学习为我的项目编写setup.py文件的艺术。我看到有很多谈论setuptools,这应该是优于distutils。有一件事,但我不明白,我没有看到它在我读过的任何教程中解决:如果setuptools没有安装?我知道这不是标准库的一部分,所以你怎么能假设想安装你的程序的人将安装它?如果setuptools未安装,该怎么办?

+0

对于它的价值,有些人都在谈论移动到[分配] [1]从setuptools的... [1]:http://pypi.python.org/ pypi /分发 – Kylotan 2009-11-03 10:56:06

+0

...似乎标记在评论中的工作方式不同。 ;) – Kylotan 2009-11-03 10:56:37

+0

没有魔法弹。为了用setuptools安装你的应用程序,某个地方的某个人不得不引导setuptools进入系统,而不使用easy_install。这可能是用户,它可能是发行人,或者它可能是你,用你的应用程序内置setuptools来构建你的安装程序。 – 2009-11-03 14:19:14

回答

1

您不能假定它已安装。有办法,你可以回退distutils(但为什么有setuptools首先),或者你可以在setup.py中安装setuptools(但我认为这是邪恶的)。

只有在需要的时候才使用setuptools。

当涉及到setuptools vs distrubute时,它们是兼容的,而选择一个则主要取决于用户。 setup.py是相同的。

0

你可以从这里

http://pypi.python.org/pypi/setuptools

下载Windows EXE安装程序和一个Linux RPM然后,一旦你有setuptools的到位,你可以使用easy_install命令完成下载并安装新的软件包。由于easy_install也会自动下载和安装依赖项,因此您可能需要在实际使用之前设置virtualenv。这样,您可以决定是否要将一堆软件包安装到系统的默认Python安装中。

是的,这意味着你的用户必须安装setuptools才能使用它。当然,你可以使用setuptools安装程序,重命名它们,并将它们打包成像NSIS一样,并将其分发给用户。事实是,你必须安装一些东西,所以如果你不想把你的应用程序放到安装程序中,你可以打包setuptools。

+0

所以我对我的用户说:“要安装我的程序,你必须安装setuptools”? – 2009-11-03 10:42:09

+3

问题不在于“如何安装setuptools”,而是“用户没有安装setuptools”。 – 2009-11-03 10:42:43

+0

如果用户没有它,唯一可以做的就是让他们下载EXE或RPM并安装它。或者分发setuptools而不是您的应用程序。编辑回答说这个。 – 2009-11-03 14:17:12

2

在我为python安装的大多数图书馆中,警告apears“您必须安装setuptools”。你也可以这样做,我想,你可以添加一个链接,以便用户不必在网上搜索它。

+1

+1:如何在自述文件中包含“使用setuptools”一词? – 2009-11-03 12:55:57

+0

我认为这是一样的。无论如何,当没有安装setuptools时会引发异常,因此您必须处理它。 – TiPoK 2009-11-03 13:43:52

4

使用setuptools发布软件包的标准方式包括一个ez_setup.py脚本,它将自动下载并安装setuptools本身 - 在Windows上,我相信它实际上会安装easy_install的可执行文件。你可以从标准的setuptools/easy_install发行版中获得。

0

我会说这取决于你正在寻找什么样的用户。

如果他们只是用户而不是Python程序员,或者他们是基本的程序员,那么使用setuptools可能会有点太多。对于那些distutils是完美的。

对于客户,我肯定会坚持distutils。

对于更多发烧友程序员来说,setuptools会很好。

不知何故,它也取决于你想如何分配更新,以及多久。例如,用户是否有权访问互联网,而无需公司设置恶意代理来阻止setuptools? - 我们有一个,这是一个额外的步骤来配置并使其在每个工作站上都​​能正常工作。

2

我已经使用setuptools编译了许多我写入windows EXE的python脚本。但是,我一直认为(从经验中)运行编译的EXE的计算机不需要安装设置工具。

希望帮助

相关问题