<p>我们还开发依赖于numpy、scipy和其他PyPI包的软件项目。实际上,目前用于管理远程安装的最佳工具是<a href="http://www.buildout.org/" rel="nofollow noreferrer">zc.buildout</a>。它非常易于使用。您可以从他们的网站下载一个引导脚本,并将其与您的软件包一起分发。您编写了一个“本地部署”文件,通常称为<code>buildout.cfg</code>,它解释了如何在本地安装包。您的包中同时提供了<code>bootstrap.py</code>文件和<code>buildout.cfg</code>文件-我们在python包中使用<code>MANIFEST.in</code>文件来强制将这两个文件嵌入到PyPI分发的zip或tar球中。用户解包时,应执行两个命令:</p>
<pre><code>$ python bootstrap.py # this will download zc.buildout and setuptools
$ ./bin/buildout # this will build and **locally** install your package + deps
</code></pre>
<p>编译包并在本地安装所有依赖项,这意味着安装包的用户甚至不需要根权限,这是一项附加功能。脚本(通常)放在<code>./bin</code>下,因此用户可以在之后执行它们。<code>zc.buildout</code>使用<code>setuptools</code>与PyPI交互,因此您所期望的一切都是现成的。</p>
<p>如果没有足够的能力,您可以很容易地扩展<code>zc.buildout</code>-您可以创建所谓的“配方”,帮助用户创建额外的配置文件、从网络下载其他内容或实例化自定义程序。<a href="http://www.buildout.org/" rel="nofollow noreferrer">zc.buildout</a>网站包含一个视频教程,详细说明如何使用buildout以及如何扩展它。我们的项目<a href="http://www.idiap.ch/software/bob/" rel="nofollow noreferrer">Bob</a>广泛使用buildout来分发科学使用的包。如果您愿意,请<a href="https://pythonhosted.org/bob.extension/guide.html" rel="nofollow noreferrer">visit the following page</a>,其中包含有关如何设置python包的详细说明,以便其他人可以使用<code>zc.buildout</code>在本地构建和安装它们。</p>