<p>可以在<a href="http://www.jetbrains.com/pycharm/">PyCharm</a>中使用代码检查。</p>
<p>删除<code>requirements.txt</code>的内容,但保留空文件。
在中加载项目,PyCharm转到<code>Code -> Inspect code...</code>。在对话框中选择<code>Whole project</code>选项,然后单击<code>OK</code>。
在“检查结果”面板中,在<code>Python</code>下找到<code>Package requirements</code>部分(请注意,只有存在<code>requirements.txt</code>或<code>setup.py</code>文件时才会显示此部分)。
该部分将包含以下消息之一:</p>
<ul>
<li><code>Package requirement '<package>' is not satisfied</code>如果<code>requirements.txt</code>中列出了任何未在任何.py文件中使用的包。</li>
<li><code>Package '<package>' is not listed in project requirements</code>如果有任何包在.py文件中使用,但未在<code>requirements.txt</code>中列出。</li>
</ul>
<p>你对第二次检查感兴趣。
右键单击<code>Package requirements</code>部分并选择<code>Apply Fix 'Add requirements '<package>' to requirements.txt'</code>,可以将所有使用过的包添加到<code>requirements.txt</code>。注意,它将只显示一个包名,但如果调用部分,它实际上会将所有使用过的包添加到<code>requirements.txt</code>。</p>
<p>如果需要,可以逐个添加,只需右键单击某个包对应的检查并选择<code>Apply Fix 'Add requirements '<package>' to requirements.txt'</code>,对此类检查重复此操作。</p>
<p>之后,您可以创建干净的虚拟环境并从新的<code>requirements.txt</code>安装软件包。</p>
<p>还要注意,PyCharm具有导入优化功能,请参见<a href="http://www.jetbrains.com/pycharm/webhelp/optimizing-imports.html">Optimize imports...</a>。在执行上面列出的任何其他步骤之前使用此功能可能会很有用。</p>
<p><img src="https://i.stack.imgur.com/nb2R0.png" alt="Apply fix for all packages not listed in requirements.txt"/></p>