如何检查许多Python文件中未使用的导入?

我记得当我使用C ++或Java开发时,编译器通常会抱怨未使用的方法,函数或导入。 在我的Django项目中,我有一堆经过多次迭代的Python文件。 其中一些文件在页面顶部具有几行import语句,而其中一些导入不再使用。 除了盯着每个文件中的每个未使用进口之外,是否有办法找到那些未使用的进口?

我所有的输入都是明确的,我通常不会写from blah import *

Thierry Lam asked 2020-08-11T21:24:07Z
9个解决方案
40 votes

PyFlakes(类似于Lint)将为您提供此信息。

pyflakes python_archive.py

Example output:
python_archive.py:1: 'python_archive2.SomeClass' imported but unused
doug answered 2020-08-11T21:24:13Z
8 votes

使用诸如pylint之类的工具来告知这些代码缺陷(在许多其他缺陷中)。

对于具有动态类型的语言而言,执行此类“运行前”检查很困难,但是pylint在捕获这些来自重构等方面的错别字/遗留物方面做得非常出色。

ChristopheD answered 2020-08-11T21:24:38Z
6 votes

看看PyChecker。 它是一种调试工具,能够找到未使用的变量和模块。

Felix Kling answered 2020-08-11T21:24:58Z
4 votes

我一直在成功使用pyflakes,并希望自动删除未使用的导入。

我最近发现了autoflake:

  • 使用pyflakes进行检查。
  • 默认情况下将删除未使用的标准库导入和冗余pass语句。
  • 具有删除其他未使用的导入和未使用的变量的选项。
Paul Thompson answered 2020-08-11T21:25:35Z
3 votes

如果将eclipse IDE与pydev和mylyn一起使用,它会自动检查并突出显示未使用的导入内容。 它也与pylint集成。

answered 2020-08-11T21:25:55Z
1 votes

autoflake是pyflakes的改进版本,带有其他选项。它在引擎盖下使用pyflakes,我建议您使用它而不是直接使用pyflakes。

ishandutta2007 answered 2020-08-11T21:26:16Z
1 votes

我使用3007206769933419519520检查样式,然后使用isort + autoflake自动删除未使用的导入。

检查:查看更多关于flake8与pyflakes的信息

pip install flake8 --user
flake8 .

重新格式化:查看更多关于为什么使用isort + autoflake的信息

pip install isort autoflake --user
isort -rc -sl .
autoflake --remove-all-unused-imports -i -r .
isort -rc -m 3 .
Waket Zheng answered 2020-08-11T21:26:45Z
0 votes

您可以使用以下用户设置:

"python.linting.pylintEnabled": true,
"python.linting.pylintArgs": [
    "--enable=W0614"
]

但是我认为,您需要自己浏览所有文件并单击“保存”。

sinapan answered 2020-08-11T21:27:09Z
0 votes

我同意使用PyFlakes。 就像棉绒一样,但不包括样式错误。

更新

怎么运行:pyflakespyflakes <your folder containing python files>

小心!!!

如果仅使用命令pyflakes来运行它,那将花费很长时间,因为它永无休止。 我的假设是它试图以这种方式检查计算机/文件夹中的每个python文件。

Aminah Nuraini answered 2020-08-11T21:27:47Z
translate from https://stackoverflow.com:/questions/2540202/how-can-i-check-for-unused-import-in-many-python-files