Как я могу проверить неиспользуемый импорт во многих файлах Python? - PullRequest
41 голосов
/ 29 марта 2010

Я помню, когда я разрабатывал на C ++ или Java, компилятор обычно жалуется на неиспользуемые методы, функции или импорт. В моем проекте Django у меня есть несколько файлов Python, которые прошли несколько итераций. Некоторые из этих файлов имеют несколько строк оператора импорта в верхней части страницы, а некоторые из этих импортов больше не используются. Есть ли способ определить местонахождение этих неиспользуемых импортов, помимо глазного яблока каждого из них в каждом файле?

Весь мой импорт явный, я обычно не пишу from blah import *

Ответы [ 9 ]

38 голосов
/ 29 марта 2010

PyFlakes (аналогично Lint ) даст вам эту информацию.

pyflakes python_archive.py

Example output:
python_archive.py:1: 'python_archive2.SomeClass' imported but unused
8 голосов
/ 29 марта 2010

Используйте такой инструмент, как pylint , который будет сигнализировать об этих дефектах кода (среди многих других).

Выполнение такого рода проверок перед выполнением является сложным в языке с динамической типизацией, но Pylint выполняет потрясающую работу по отлову этих опечаток / остатков от рефакторинга и т. Д. *

6 голосов
/ 29 марта 2010

Посмотрите на PyChecker . Это инструмент отладки, способный находить неиспользуемые переменные и модули.

4 голосов
/ 19 мая 2016

Я успешно использовал pyflakes и хотел автоматически удалить неиспользованный импорт.

Я недавно обнаружил автозапуск :

  • Использует pyflakes для проверки.
  • По умолчанию удаляется неиспользуемый импорт стандартной библиотеки и избыточные операторы pass.
  • Имеет параметры для удаления других неиспользуемых импортов и неиспользуемых переменных.
3 голосов
/ 29 марта 2010

Если вы используете IDE eclipse с pydev и mylyn , это обеспечивает автоматическую проверку и выделение неиспользованного импорта, среди прочего. Он также интегрируется с Pylint.

1 голос
/ 23 декабря 2018

autoflake - улучшенная версия pyflakes с дополнительными опциями. Он использует пайфлукс под капотом, я бы порекомендовал использовать его вместо того, чтобы использовать пайфлукс напрямую.

0 голосов
/ 28 марта 2019

Я использую 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 .
0 голосов
/ 14 января 2019

Я согласен с использованием PyFlakes . Это как linting, но исключает ошибки стиля.

UPDATE

Как запустить: pyflakes <your python file> или pyflakes <your folder containing python files>

БУДЬТЕ ОСТОРОЖНЫ !!!

Если вы запускаете его только с помощью команды pyflakes, это займет очень много времени, как будто оно никогда не заканчивается. Моя гипотеза состоит в том, что он пытается проверить каждый файл python в вашей машине / папке, когда вы так его называете.

0 голосов
/ 18 ноября 2018

Вы можете использовать следующие пользовательские настройки :

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

Но я думаю, вам нужно самостоятельно просмотреть все файлы и нажать «сохранить».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...