<p>几乎没有解决办法</p>
<h2>选项所有:安装一切,忽略您的特殊要求</h2>
<p>这并不能回答您的问题,但可能是最有效的解决方案。除非您有一些由于任何原因难以安装的软件包,否则不值得为不同的团队分别安装它们。如果你计算一下实现这一点所需的时间,你会发现,这是不可行的。如果您需要考虑安装软件包所需的时间,请参阅<a href="https://stackoverflow.com/a/18520729/346478">related SO answer for pip configuration</a>将您的安装速度降低到一秒或两秒,即使对于需要编译的软件包也是如此。你知道吗</p>
<h2>多选项:将解决方案组织为多个多级包</h2>
<p>您可以将解决方案拆分为如下包</p>
<ul>
<li><code>tool.common</code></li>
<li><code>tool.teamA</code></li>
<li><code>tool.teamB</code></li>
<li><code>tool.teamB</code></li>
</ul>
<p>在这种情况下,工具称为名称空间包,应该为空。你知道吗</p>
<p>任何包都可能需要安装其他包,通常<code>tool.common</code>可能是所有其他包中所需包的一部分。你知道吗</p>
<h2>选项Pip:对<code>requirements.txt</code>文件使用Pip</h2>
<p>还有其他常见的模式,使用<code>pip</code>和<code>requirements.txt</code>文件。你知道吗</p>
<p>pip允许安装在某些文本文件中声明的文件,通常称为<code>reuirements.txt</code>,但任何其他名称都可以。你知道吗</p>
<p>而不是使用:</p>
<pre><code>$ pip install tool.teamA
</code></pre>
<p>人们会以某种方式使用代码,例如:</p>
<pre><code>$ git clone repo4tools
</code></pre>
<p>在那个存储库中,会有一些文件</p>
<ul>
<li><code>requirements-teamA.txt</code></li>
<li><code>requirements-teamB.txt</code></li>
<li><code>requirements-teamC.txt</code></li>
</ul>
<p>还有其他需要的。你知道吗</p>
<p>每个需求文件将只包含给定团队所需的包。你知道吗</p>
<p>人们会简单地称之为:</p>
<pre><code>$ cd repo4tools
$ pip install -r requirements-teamA.txt
</code></pre>
<p>对于开发人员来说,最后一个选项变得非常流行,尤其是与virtualenv结合使用时。有时甚至每个团队都有多个需求文件,一个用于实际使用,另一个用于开发和测试等</p>