pycharm 从需求文件中删除未使用的包

o8x7eapl  于 2022-11-08  发布在  PyCharm
关注(0)|答案(5)|浏览(490)

有没有什么简单的方法可以从requirements文件中删除不再使用的软件包?
我为这个任务写了一个bash脚本,但是,它没有像我预期的那样工作。因为,一些包没有按照它们的PyPI项目名称来使用。例如;

dj-database-url

封装被用作

dj_database_url

我的项目在它自己的需求文件中有很多包,所以,一个一个地搜索它们太混乱,容易出错,而且花费太多时间。

muk1a3rh

muk1a3rh1#

您可以在PyCharm中使用代码检查。
1.删除requirements.txt的内容,但保留空文件。
1.将项目加载到,

  1. PyCharm转到Code -> Inspect code...
    1.在对话框中选择Whole project选项,然后单击OK。在检查结果面板中,找到Python下的Package requirements部分(请注意,仅当存在任何requirements.txtsetup.py文件时,才会显示此部分)。此部分将包含以下消息之一:
  • Package requirement '<package>' is not satisfied(如果有任何软件包列在requirements.txt中,但未在任何.py文件中使用)。
  • Package '<package>' is not listed in project requirements(如果有任何包在.py文件中使用,但未在requirements.txt中列出)。

您对第二个检查感兴趣。您可以通过右键单击Package requirements部分并选择Apply Fix 'Add requirements '<package>' to requirements.txt'来将所有使用的包添加到requirements.txt。注意,它将只显示一个包名称,但如果对部分进行调用,它实际上会将所有使用的包添加到requirements.txt
如果需要,可以逐个添加,右键单击某个 Package 对应的检验,选择Apply Fix 'Add requirements '<package>' to requirements.txt',对每一个此类检验重复操作。
之后,您可以创建干净的虚拟环境,并从新的requirements.txt安装包。
另外请注意,PyCharm有导入优化功能,请参见Optimize imports...。在上面列出的任何其他步骤之前使用此功能可能会很有用。

cwxwcias

cwxwcias2#

最好的办法是使用(fresh)python venv/virtual-env,没有包,或者只有那些您确定需要的包,测试你的软件包-用pip安装缺失的软件包当你遇到问题时,这对大多数软件来说应该是相当快的,然后使用pip freeze命令列出你真正需要的软件包。您最好使用pip wheel创建一个包含中的包的wheel。
另一种办法是:
1.使用pylint检查每个文件是否有未使用的导入并删除它们(无论如何都应该这样做),
1.进行测试以确保它是正确的,
1.使用snakefoodsnakefood3之类的工具生成新的依赖项列表
请注意,要使任何依赖项检查正常工作,建议避免条件导入和函数内的导入。
另外请注意,为了确保您拥有一切,最好构建一个新的venv/virtual-env,并从依赖项列表中安装,然后重新测试您的代码。

7z5jn7bk

7z5jn7bk3#

您可以使用deptry来查找过时的依赖项,deptry是一个命令行实用程序,用于检查项目依赖项的各种问题,例如过时的、丢失的或可传递的依赖项。
使用将其添加到项目

pip install deptry

然后运行

deptry .

输出示例:

-----------------------------------------------------

The project contains obsolete dependencies:

        Flask
        scikit-learn
        scipy

Consider removing them from your projects dependencies. If a package is used for development purposes, you should add
it to your development dependencies instead.

-----------------------------------------------------

请注意,为了获得最佳效果,您应该为项目使用虚拟环境,例如,请参见here
免责声明:我是deptry的作者。

68bkxrlz

68bkxrlz4#

pycharm中,进入Tools -〉Sync Python Requirements。这里有一个“删除未使用的需求”复选框。

8wtpewkr

8wtpewkr5#

我已经成功地使用了pip-check-reqs
使用命令pip-extra-reqs your_directory,它将检查your_directory中所有未使用的依赖项
pip install pip-check-reqs安装。

相关问题