Ответ 1
PyFlakes (похож на Lint) даст вам эту информацию.
pyflakes python_archive.py
Example output:
python_archive.py:1: 'python_archive2.SomeClass' imported but unused
Помню, когда я развивался на С++ или Java, компилятор обычно жалуется на неиспользуемые методы, функции или импорт. В моем проекте Django у меня есть куча файлов Python, которые прошли через несколько итераций. Некоторые из этих файлов содержат несколько строк инструкции импорта в верхней части страницы, и некоторые из этих импортных данных больше не используются. Есть ли способ найти эти неиспользуемые импорты, кроме того, что вы просматриваете каждый из них в каждом файле?
Все мои входы явные, я обычно не пишу from blah import *
PyFlakes (похож на Lint) даст вам эту информацию.
pyflakes python_archive.py
Example output:
python_archive.py:1: 'python_archive2.SomeClass' imported but unused
Используйте такой инструмент, как pylint, который будет сигнализировать эти дефекты кода (среди многих других).
Выполнение таких проверок "перед запуском" затруднено на языке с динамической типизацией, но pylint делает потрясающую работу по перехвату этих опечаток/остатков от рефакторинга и т.д.
Посмотрите PyChecker. Это инструмент для отладки и возможность поиска неиспользуемых переменных и модулей.
Я успешно использовал pyflakes и хотел автоматически удалить неиспользуемые импорты.
Недавно я нашел autoflake:
pass
.Если вы используете eclipse IDE с pydev и mylyn, он обеспечивает автоматическую проверку и выделение неиспользуемых импортов, среди прочего. Он также интегрируется с пилинтом.
autoflake - улучшенная версия pyflakes с дополнительными опциями. Он использует пайфлукс под капотом, я бы порекомендовал использовать его вместо того, чтобы использовать пайфлукс напрямую.
Вы можете использовать следующие настройки пользователя:
"python.linting.pylintEnabled": true,
"python.linting.pylintArgs": [
"--enable=W0614"
]
Но я думаю, вам нужно просмотреть все файлы самостоятельно и нажать "сохранить".
Я согласен с использованием PyFlakes. Это как Linting, но это исключает ошибки стиля.
ОБНОВИТЬ
Как запустить: pyflakes <your python file>
или pyflakes <your folder containing python files>
БЫТЬ ОСТОРОЖЕН!!!
Если вы запускаете его только с помощью команды pyflakes
, это займет очень много времени, как будто оно никогда не заканчивается. Моя гипотеза состоит в том, что он пытается проверить каждый файл python в вашей машине/папке, когда вы так его называете.
Я использую flake8
для проверки стиля, а затем isort
+ autoflake
для автоматического удаления неиспользованного импорта.
Проверить: Посмотреть больше на flake8 vs pyflake
pip install flake8 --user
flake8 .
Переформатировать: узнать больше о том, почему isort + автофлейк
pip install isort autoflake --user
isort -rc -sl .
autoflake --remove-all-unused-imports -i -r .
isort -rc -m 3 .