<p>我和您有类似的需求,但除此之外,我还需要打包的应用程序在多个平台上工作。我目前正在探索当前可用的解决方案,以下是一些有趣的解决方案:</p>
<ul>
<li>使用<a href="https://github.com/prezi/snakebasket" rel="nofollow noreferrer">SnakeBasket</a>,它包围了Pip,并添加了一个递归依赖解析和一个启发式,以便在发生冲突时选择正确的版本。在</li>
<li>将所有依赖项打包为一个egg,但不打包您的源代码,它仍然可以编辑:<a href="https://stackoverflow.com/a/528064/1121352">https://stackoverflow.com/a/528064/1121352</a></li>
<li>将所有依赖项打包到一个zip文件中,并直接动态导入模块:<a href="https://stackoverflow.com/questions/9035424/cross-platform-alternative-to-py2exe">Cross-platform alternative to py2exe</a>或<a href="http://davidf.sjsoft.com/mirrors/mcmillan-inc/install1.html" rel="nofollow noreferrer">http://davidf.sjsoft.com/mirrors/mcmillan-inc/install1.html</a></li>
<li>使用buildout:<a href="http://www.buildout.org/en/latest/install.html" rel="nofollow noreferrer">http://www.buildout.org/en/latest/install.html</a></li>
<li>将<a href="http://dabapps.com/blog/introduction-to-pip-and-virtualenv-python/" rel="nofollow noreferrer">virtualenv</a>与<a href="https://github.com/fireteam/virtualenv-tools" rel="nofollow noreferrer">virtualenv-tools</a>一起使用(而不是“relocate”)</li>
<li>如果使用PyInstaller或类似工具冻结代码时的主要问题是最终只得到一个大文件,那么可以自定义该过程,以便获得多个文件,每个依赖项对应一个,而不是一个大的可执行文件。在</li>
</ul>
<p>我会在这里更新,如果我发现一些东西填补我的账单。在</p>