我正在学习为我的项目编写setup.py
文件的艺术。我看到有很多关于setuptools
的讨论,它应该优于distutils。有一件事虽然我无法理解,但我没有看到它在我读过的任何教程中解决过:如果没有安装setuptools怎么办?我知道它不是标准库的一部分,所以你如何假设想要安装程序的人将安装它?
答案 0 :(得分:4)
使用setuptools分发软件包的标准方法包括ez_setup.py
脚本,该脚本将自动下载并安装setuptools本身 - 在Windows上我相信它实际上会为easy_install
安装可执行文件。您可以从标准的setuptools / easy_install发行版中获取此信息。
答案 1 :(得分:2)
在我为python安装的大多数图书馆中,警告表示“你必须安装setuptools”。您可以这样做,我认为,您可以添加一个链接,这样用户就不必在互联网上搜索它。
答案 2 :(得分:2)
我使用setuptools来编译我写入windows EXE的许多python脚本。但是,我一直认为(根据经验)运行已编译的EXE的计算机不需要安装设置工具。
希望有所帮助
答案 3 :(得分:1)
您无法假设已安装。有办法,你可以回到distutils(但为什么首先有setuptools)或者你可以在setup.py中安装setuptools(但我觉得这很邪恶)。
仅在您需要时使用setuptools。
当谈到setuptools vs distrubute时,它们是兼容的,而选择一个而不是另一个主要取决于用户。 setup.py是完全相同的。
答案 4 :(得分:0)
您可以从此处下载Windows EXE安装程序和Linux RPM
http://pypi.python.org/pypi/setuptools
然后,一旦安装了setuptools,就可以使用easy_install
命令下载并安装新软件包。由于easy_install也会自动下载和安装依赖项,因此您可能需要在实际使用它之前设置virtualenv。这样您就可以决定是否要在系统的默认Python安装中安装一堆软件包。
是的,这意味着您的用户必须安装setuptools才能使用它。当然,您可以使用setuptools安装程序,重命名它们,并将它们打包,如NSIS,并将其分发给您的用户。事实是,你必须安装一些东西,所以如果你不想把你的应用程序放在安装程序中,你可以改为安装setuptools。
答案 5 :(得分:0)
我想说这取决于您要处理的用户类型。
如果他们只是用户而不是Python程序员,或者他们是基本程序员,那么使用setuptools起初可能有点太多了。对于那些distutils是完美的。
对于客户,我肯定会坚持使用distutils。
对于更多发烧友程序员来说,setuptools会很好。
不知何故,它还取决于您希望如何分发更新以及更新频率。例如,用户是否可以访问互联网而不需要他们的公司设置令人讨厌的代理来阻止setuptools? - 我们有一个,这是一个额外的步骤来配置并使其在每个工作站上工作。