如何在许多Python文件中检查未使用的导入? 我记得我在C++或java开发的时候,编译器经常抱怨没有使用的方法、函数或导入。在我的Django项目中,我有一堆经过多次迭代的Python文件。有些文件在页面顶部有几行import语句,有些导入不再使用。除了查看每个文件中的每个导入之外,还有什么方法可以找到这些未使用的导入
我所有的导入都是显式的,我通常不会从blah import中编写如何在许多Python文件中检查未使用的导入? 我记得我在C++或java开发的时候,编译器经常抱怨没有使用的方法、函数或导入。在我的Django项目中,我有一堆经过多次迭代的Python文件。有些文件在页面顶部有几行import语句,有些导入不再使用。除了查看每个文件中的每个导入之外,还有什么方法可以找到这些未使用的导入,python,Python,我所有的导入都是显式的,我通常不会从blah import中编写*使用这样的工具,它会显示这些代码缺陷(以及许多其他缺陷) 在使用动态类型的语言中,执行这些类型的“运行前”检查是很困难的,但是pylint在捕获这些类型错误/重构等遗留问题方面做得非常好……(类似于)将为您提供这些信息 pyflakes python_archive.py Example output: python_archive.py:1: 'python_archive2.SomeClass' imported but u
*
使用这样的工具,它会显示这些代码缺陷(以及许多其他缺陷)
在使用动态类型的语言中,执行这些类型的“运行前”检查是很困难的,但是pylint在捕获这些类型错误/重构等遗留问题方面做得非常好……(类似于)将为您提供这些信息
pyflakes python_archive.py
Example output:
python_archive.py:1: 'python_archive2.SomeClass' imported but unused
看一看。它是一个调试工具,能够找到未使用的变量和模块。如果您将IDE与和一起使用,它会自动检查和突出显示未使用的导入,以及其他内容。它还与pylint集成。我一直在成功使用,希望自动删除未使用的导入
我最近发现:
- 用于检查
- 默认情况下,删除未使用的标准库导入和冗余的
语句pass
- 具有删除其他未使用导入和未使用变量的选项
"python.linting.pylintEnabled": true,
"python.linting.pylintArgs": [
"--enable=W0614"
]
但我认为,您需要自己检查所有文件并点击“保存”。是的改进版本,带有其他选项。
它在引擎盖下使用pyflakes,我建议使用它而不是直接使用pyflakes。我同意使用。它类似于linting,但它排除了样式错误
更新
如何运行:pyflakes
或pyflakes
小心
如果您只使用命令
pyflakes
运行它,它需要很长的时间,就像它是永无止境的一样。我的假设是,当您这样称呼它时,它试图检查机器/文件夹中的每个python文件。我使用flake 8
检查样式,然后isort
+autoflake
自动删除未使用的导入
检查:请参阅
重新格式化:请参阅
是一个命令行实用程序,用于在Python模块中查找未使用的导入。建议从2020年起使用
装置
来自PyPI的pip安装秃鹫
用法
vulture myscript.py
用于项目下的所有python文件
find-名称“*.py”| xargs vulture | grep“未使用的导入”
例子
适用于以下代码
将numpy导入为np
作为pd进口熊猫
df=pd.DataFrame({'A':[1,2],'B':[3,4]})
结果如下
➜ 秃鹫myscript.py
py:1:未使用的导入“np”(90%置信度)
py:4:未使用的变量“df”(60%置信度)
用于ls*.py中的x;做echo$x;pylint$x | grep“未使用的导入”;完成
您应该注意检查所有文件的确切命令(例如pylint*| grep“unused import”
)。文档中有没有提到这一点?可能它只是等待标准输入?似乎未维护且不适用于相对导入Autoflake无法用于多行导入
pip install flake8 --user
flake8 .
pip install isort autoflake --user
isort -rc -sl .
autoflake --remove-all-unused-imports -i -r .
isort -rc -m 3 .